首页 > 解决方案 > 将可空类型转换为相应的原始类型而不是使用 Value 属性时发出警告

问题描述

我想防止自己掉进下面的坑:

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

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

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

标签: c#visual-studiocastingwarningsnullable

解决方案


使用 C# 8 是可能的:

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


推荐阅读