C#和可空标志/注释?

Oli*_*xon 3 c# nullable

C#有Nullable注释吗?

例如在Java中

public @Nullable <T extends BaseJsonClass> T getModel(String saveKey, Class<T> type) {
Run Code Online (Sandbox Code Playgroud)

现在当开发人员试图打电话时

Object.getModel().someMethod()
Run Code Online (Sandbox Code Playgroud)

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

我知道?C#中var名称末尾的标记,someObject?但问题是当在许多地方使用vars时,它可能是棘手/烦人/ JSON模型.

pmb*_*nka 8

C#没有这样的东西 - 这样的功能不是语言的一部分(还).

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


Dav*_*ton 5

简而言之,没有。

但目前是对未来发展的建议

提案:可空引用类型和可空性检查