那些额外的花括号在c#中做什么?

本文关键字:什么 那些 | 更新日期: 2023-09-27 18:12:17

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

所以,我有一些像这样的代码:
textBox1.InputScope = new InputScope { Names = { _Scope } };

Names属性的类型是IList

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

这个额外的大括号是做什么的?

那些额外的花括号在c#中做什么?

这是一个集合初始化器,但它不是创建一个新的集合-它只是添加到一个现有的集合。它被用作对象初始化器成员初始化器初始化器值部分。它相当于:

InputScope tmp = new InputScope();
tmp.Names.Add(_Scope);
textBox1.InputScope = tmp;

这是一个集合初始化式。它允许您向Names集合添加项目

new InputScope { // indicates an object-initializer for InputScope using
                 // the default constructor
   Names = { // indicates an in-place usage of a collection-initializer
     _Scope  // adds _Scope to Names
   } // ends the collection-initializer
}; // ends the object-initializer

var tmp = new InputScope();
tmp.Names.Add(_Scope);
textBox1.InputScope = tmp;

第一个花括号集合是对象初始化式。第二个集合是一个名称列表(集合)。