C#和可为null的标志/注释

本文关键字:标志 注释 null | 更新日期: 2023-09-27 17:58:37

C#是否具有可为null的注释?

例如在Java 中

public @Nullable <T extends BaseJsonClass> T getModel(String saveKey, Class<T> type) {

现在,当开发人员尝试调用时

Object.getModel().someMethod()

编译器会警告他们没有检查null。

我知道C#中类似someObject?的var名称末尾的?标记,但问题是,当在许多地方使用var时,这可能是一个棘手/令人讨厌的/JSON模型。

C#和可为null的标志/注释

C#没有类似的功能——这种功能还不是语言的一部分。

但是,如果使用ReSharper,则可以利用其值和可空性分析功能,该功能允许您向代码添加几个属性:[CanBeNull][NotNull][ItemCanBeNull][ItemNotNull]。插件执行的可空性分析将考虑这些属性,从而导致您要求的编译时警告。

简而言之,没有

但目前这是未来发展的一个建议

建议:可为null的引用类型和可为null性检查