将可空类型转换为相应的原始类型而不是使用值 属性 时发出警告
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
.
我要防止自己落入以下坑:
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
.