c# - 在 C# 8 中检查 null 并立即分配给变量
问题描述
可能是一个微不足道的问题,但我正在尝试与现代 C# 保持同步,并且对模式匹配等所有新功能感到不知所措。
使用 C# 8,是否有一种新方法可以简化以下常见模式,我是否检查了一个属性是否为非null
,如果是,则将其存储在范围var
内以供使用if
?那是:
var item = _data.Item;
if (item != null)
{
// use item
}
我可以想到这个:
if (_data.Item is var item && item != null)
{
// use item
}
和这个:
if (_data.Item is Item item)
{
// use item
}
在这些之间,我仍然会选择第一个片段。
解决方案
您也可以使用空属性模式:
if (_data.Item is {} item)
{
// use item
}
推荐阅读
- javascript - 如何动态复制转换为 select2.js 的选择标记?
- r - 将元素大小不等的大列表的内容写入R中的数据框
- wpf - WinAppDriver - 如何获取元素上可用的属性列表
- c++ - 自动检测 shared_ptr 何时应该是 unique_ptr
- javascript - iframe 等待嵌入的 javascript 完成
- html - 当元素被过滤器或其他原因调整时如何调整元素的位置
- c# - 单元测试和封装
- git - GWT 模块的 Maven 安装将行尾从 LF 更改为 CRLF
- amazon-web-services - 添加 cfn-signal 后 cfn-init 停止工作
- excel-formula - Excel 公式仅在所有值都匹配时才从查找中获取唯一值