我无法在任何地方找到这个,你能告诉我在 C# 中表达式{ }的含义或给我一个文档链接吗?
以下是我在我的项目中发现的使用示例:
Method(IProfileDocument profileDocument)
{
if(profileDocument.documentId is not { } documentId
|| string.IsNullOrEmpty(documentId))
{
do something...
}
}
{ }
在与is
一起使用时是一个空属性模式。
{ }
基本上等价于!= null
(s is {} x)
模式及其等效语句。不可否认,它是该语言中最奇怪的结构之一。 - NPrasis
和is not
之间的区别应该是不言自明的 :-) - Piglet属性模式:属性模式检查输入值不为null,并通过可访问的属性或字段递归匹配提取的值。
string s =null;
if (s is not { } documentId)
{
}
else
{
string mj = documentId;
}
声明模式:声明模式既测试一个表达式是否属于给定类型,如果测试成功,则将其转换为该类型。如果指定为单一变量设计,则可能会引入一个名为指定标识符的给定类型本地变量。
此处首先检查 profileDocument.documentId 是否为空。如果不为空,则将值分配给一个新的变量 documentId
。
new int[] { 1, 2, 3 };
- Ibrennan208