2016-10-13 66 views
2

爲什麼ProtoBuff.Net不支持nullProtoBuff.Net不支持null。爲什麼?

我正在通過ProtoBuf,並想知道爲什麼null值不支持。當我們嘗試分配null值時,它會給出例外。即使ref類似字符串不支持這一點。

pb::ThrowHelper.ThrowIfNull(value, "value"); 

我知道PROTOS希望保持最低限度的基本如此,它支持大量的語言(這就是爲什麼沒有DateTime),但空是跨語言的一個概念?

或者可能是我俯視的東西。

+0

目前尚不清楚您是在談論協議緩衝區,還是針對.NET的一個特定實現(protobuf.net也許?) –

+0

是的。 ProtoBuf.Net具體。 –

+0

對 - 你可能想要改變問題標題和問題主體的第一行... –

回答

3

簡單地說,因爲底層協議規範(「protobuf」)沒有null的概念,也沒有辦法表達它。如果我不能在協議中表達,那麼可以支持的最好的是某種隱含的「缺少某種東西意味着不要這樣做,這意味着它可能會是null」。

+0

但不是'null'這個跨越像'int'這樣的編程範式的全局概念嗎? –

+0

@NikhilAgrawal你可能會驚訝地發現,例如JavaScript並沒有真正的整數:) – jpa

+0

@NikhilAgrawal你可以把它與設計協議的人... –