【发布时间】:2022-09-27 17:07:08
【问题描述】:
例如,如果我更改以下数据类型bool?
[ProtoMember(10)]
public bool? HasEmail { get; set; }
到bool。这会是一个突破性的变化吗?
[ProtoMember(10)]
public bool HasEmail { get; set; }
编写HasEmail 的逻辑已更改为...?? false,因此将来它永远不会为空。
数据将存储在 Redis 中。而其他一些程序可能会尝试使用bool? 或bool 类型来读取它。
-
只要您的数据中有空值,这确实是一个重大变化。如果其他东西写了一个空值(或者空值已经存在),那么你的新代码就会崩溃。但是如果这段代码是唯一的编写者,而其他应用程序只是读取,那么你很好:他们期待一个可能为空的值,它永远不会为空。
-
此代码是唯一的编写器。它更新了分配
HasEmail和...?? false的代码。我不确定 Redis 中的现有数据是否包含 null。也许我不应该在读者上将bool?更改为bool。
标签: c# protocol-buffers protobuf-net