C# · 12月 30, 2021

C#中的额外大括号是什么?

我不知道如何搜索这个问题;原谅我,如果它是多余的.

所以,我有一些这样的代码:

text@R_804_2419@1.InputScope = new InputScope { Names = { _Scope } };

Names属性是IList类型

我的代码是否将一个项目添加到列表或创建新的列表?

什么是额外的大括号做?

解决方法 这是一个 collection initializer,但不是创建一个新的集合 – 它只是添加到现有的.它被用作对象初始化器中的成员初始化器的初始化器值部分.这相当于: InputScope tmp = new InputScope();tmp.Names.Add(_Scope);text@R_804_2419@1.InputScope = tmp;

有关更多信息,请参阅C#4规范的7.6.10.3.