ReSharper建议更改以下代码:
if (MyString is string myString)
{
//...
}
到对象模式:
if (MyString is { } myString)
{
//...
}
它说:
源表达式始终是模式的类型,匹配所有非空值。
我以前从未见过这种语法,也找不到任何文档。它是什么,它有什么作用?
{}
代表not null
,但不调用!=
运算符,因此它像不调用运算符is null
运算符一样安全==
。
缺乏有关它的信息。我在github上找到了关于它的线程。我认为这是现在的预览功能。