gpt4 book ai didi

C# - "is"运算符后的大括号的含义

转载 作者:行者123 更新时间:2023-12-03 13:56:37 25 4
gpt4 key购买 nike

我在一些 C# 源代码中发现了以下行:
if(!(context.Compilation.GetTypeByMetadataName("Xunit.FactAttribute") is { } factAttribute))
这是另一个:
if(!(diagnostic.Location.SourceTree is { } tree)){ } 后面的花括号 ( is ) 是什么意思运算符(operator)?

最佳答案

这是 C# 8.0 中引入的新模式匹配功能,称为 property pattern .在这种特殊情况下,它用于检查对象是否为空,例如来自链接文章:

static string Display(object o) => o switch
{
Point { X: 0, Y: 0 } p => "origin",
Point { X: var x, Y: var y } p => $"({x}, {y})",
{} => o.ToString(),
null => "null"
};

关于C# - "is"运算符后的大括号的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62139886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com