繁体   English   中英

C#中的花括号

[英]Curly Braces In C#

我在玩一些代码,我想知道是否有人可以告诉我这段代码中的花括号代表什么。 我以为这是一个空对象,但似乎并非如此。

 Person person = new Person{};

            if (person is {}){
                Console.WriteLine("Person is empty.");
            } else {
                Console.WriteLine("Person is not empty.");
            }

它编译得很好; 但是如果我填充了 person 类的属性,它仍然属于 if 语句的 person is empty 部分。

{} 在此上下文中表示任何类型的模式匹配,以检查实例是否不为空:

if(person != null){     //the same as: if(person is {})...

}

它就像用于模式匹配的 var 关键字,因此您不需要显式指定/重复类型(尽管您知道)。

if(GetPersonFromDb() is {} person){     //the same as: var person = GetPersonFromDb(); if(person != null)...

}

更多信息(参见特殊匹配表达式部分): https : //hackernoon.com/whats-pattern-matching-in-c-80-6l7h3ygm

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM