为什么ProtoBuff.Net不支持null
?
我正在浏览ProtoBuf,并想知道为什么不支持null
值。当我们尝试分配null
值时,它会给出异常。即使像字符串这样的ref也不支持这个。
pb::ThrowHelper.ThrowIfNull(value, "value");
我知道PROTO希望将事物保持在最低限度,以便它支持大量语言(这就是为什么没有DateTime
),但是null是跨语言的概念吗?
或者我可能会忽视某些事情。
答案 0 :(得分:3)
简单地说,因为底层协议规范(“protobuf”)没有null
的概念而无法表达它。如果我不能在协议中表达它,那么可以支持的最好的是某种隐含的“缺少某些东西意味着不管它意味着它可能是null
”。