ReSharper建议将模式匹配代码更改为对象模式



ReSharper建议更改以下代码:

if (MyString is string myString)
{
//...
}

到对象模式:

if (MyString is { } myString)
{
//...
}

它说:

源表达式始终是模式的类型,匹配所有非空值。

我以前从未见过这种语法,也找不到任何文档。它是什么,它有什么作用?

{}代表not null,但不调用!=运算符,因此它像不调用运算符is null运算符一样安全==

缺乏有关它的信息。我在github上找到了关于它的线程。我认为这是现在的预览功能。

最新更新