c# - 将可空类型转换为相应的原始类型而不是使用 Value 属性时发出警告
问题描述
我想防止自己掉进下面的坑:
int? data = null;
...
...
int result = (int)data;
上面的代码编译没有错误也没有警告,如果为null ,将导致Nullable object must have a value
异常。data
是否有警告我们可以打开 Visual Studio(社区/专业/代码)以不允许这种显式强制转换,本质上是强制使用Value
属性?这样,我认为人们不会错过空检查的机会更高。
解决方案
使用 C# 8 是可能的:
在源文件中的任意位置添加编译指示#nullable enable
,或将其应用于整个项目(source)。你会得到一个警告说Nullable value type may be null
。
推荐阅读
- python - 我的用于 python 跳棋游戏的 AI 算法是否有效,如果没有,我应该考虑其他什么?
- python - 如何将字节从套接字切割成单独的部分
- javascript - 即使有“苗条”,VueJS VeeValidate 也会呈现跨度
- filepond - Filepond removeFiles 似乎不起作用
- azure - 如何在 azure devops 扩展 api 中获取当前版本的管道 ID
- swift - Swift @ObservedObject 用另一个属性初始化
- javascript - 如何赋予表头价值?
- javascript - 如何使用 removeChild 删除特定元素
- bash - 如果数组不包含if语句中的值,bash如何插入数组
- c++ - 如何在派生类中初始化基类静态内联数据成员?