首页 > 解决方案 > 在 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
}

在这些之间,我仍然会选择第一个片段。

标签: c#

解决方案


您也可以使用空属性模式

if (_data.Item is {} item)
{ 
    // use item
}

推荐阅读