C# 和可为空 flag/annotation?
C# and nullable flag/annotation?
C# 有 Nullable 注释吗?
例如 Java
public @Nullable <T extends BaseJsonClass> T getModel(String saveKey, Class<T> type) {
现在当开发者试图调用
Object.getModel().someMethod()
编译器会警告他们他们没有检查 null。
我知道 C# 中 var 名称末尾的 ?
标记,例如 someObject?
但问题是当变量是 tricky/annoying/JSON 模型时很多地方都在使用。
简而言之,没有。
但目前是对未来发展的建议
C# 没有这样的东西——这样的特性还不是语言的一部分。
但是,如果您使用 ReSharper,则可以利用其 Value and Nullability Analysis 功能,该功能允许您向代码添加多个属性:[CanBeNull]
、[NotNull]
、[ItemCanBeNull]
, [ItemNotNull]
.插件执行的可空性分析将考虑这些属性,从而导致您要求的编译时警告。
C# 有 Nullable 注释吗?
例如 Java
public @Nullable <T extends BaseJsonClass> T getModel(String saveKey, Class<T> type) {
现在当开发者试图调用
Object.getModel().someMethod()
编译器会警告他们他们没有检查 null。
我知道 C# 中 var 名称末尾的 ?
标记,例如 someObject?
但问题是当变量是 tricky/annoying/JSON 模型时很多地方都在使用。
简而言之,没有。
但目前是对未来发展的建议
C# 没有这样的东西——这样的特性还不是语言的一部分。
但是,如果您使用 ReSharper,则可以利用其 Value and Nullability Analysis 功能,该功能允许您向代码添加多个属性:[CanBeNull]
、[NotNull]
、[ItemCanBeNull]
, [ItemNotNull]
.插件执行的可空性分析将考虑这些属性,从而导致您要求的编译时警告。