如果我将我的一个字段从float更改为double,那是否会破坏我格式的向后兼容性?它应该是有意义的,但在我的测试中它没有。
另一方面,我认为float和double有不同的线型,这可以让protobuf-net正确处理这种情况并进行投射。
是否存在涵盖此类内容的文档?
答案 0 :(得分:3)
TL;博士;版本:“那很好”
在线路级别,这是 - 固定的4字节编码与8字节编码之间的差异,因此,为此,未来的序列化将为每个值花费一些额外的字节。
对于protobuf-net,默认情况下非常宽容 - 因此不会打破现有数据。它试图尽可能多地处理常见/可能的更改,这样处理得很好。其他实现可能更严格,因此如果您将其用于互操作目的,我不能对“另一端”(意思是:其他一些protobuf实现)做出任何声明。为此,还有一个可选的/ opt-in strict模式(默认情况下禁用)。如果启用 ,那么仅允许精确表示(因此:浮点数为32位,双精度值为64位)。