将可空类型转换为相应的原始类型而不是使用值 属性 时发出警告

Issue a warning when casting a nullable type to the corresponding primitive type instead of using the Value property

我要防止自己落入以下坑:

int? data = null;
... 
... 
int result = (int)data;

以上代码编译没有错误也没有警告,如果 data 为 null,将导致 Nullable object must have a value 异常。

是否有警告我们可以打开 Visual Studio (Community/Professional/Code) 以不允许这种显式转换,本质上强制使用 Value 属性?这样一来,我认为有更高的机会不会错过空检查。

使用 C# 8 是可能的:

在源文件中的任意位置添加 pragma #nullable enable,或将其应用于整个项目 (source)。你会收到一条警告说 Nullable value type may be null.