以下语句因NullReferenceException而失败: TypeModel.Create().DeepClone(new string[1]); 检查源代码会发现异常是故意抛出的,这意味着数组中的空值违反了协议缓冲区规范(理所当然,null不是任何值的重
TypeModel.Create().DeepClone(new string[1]);
检查源代码会发现异常是故意抛出的,这意味着数组中的空值违反了协议缓冲区规范(理所当然,null不是任何值的重复).
好的,规范是正确的,但如果集合中仍然存在空值,我们该怎么办?有没有解决方案,除了确保没有空值进入我们的集合?
谢谢.
这是一个棘手的问题;在线级,集合只是一个重复的标签 – 每个元素代表一个对象.很简单,没有办法在protobuf规范中直接表示null.现在,我可能变得脏了,并且对于带有nulls的集合有一些双重标记,但是 – 说实话我认为使用看起来很空的非空对象通常会更好(如果你明白我的意思).在字符串的情况下,也许“”会做(它取决于上下文,真的).
我也愿意接受建议,但是……它需要牢记规范的局限性.