要使用这样的初始化语法:
var contacts = new ContactList
{
{ "Dan", "dan.tao@email.com" },
{ "Eric", "ceo@google.com" }
};
...我的理解是我的ContactList
类型需要定义一个带有Add
两个string
参数的方法:
public void Add(string name, string email);
对此我有点困惑的是,初始化程序语法在创建只读或固定大小的集合时{ }
似乎最有用。毕竟它是为了模仿数组的初始化语法,对吧?(好的,所以数组不是只读的;但它们是固定大小的。)自然只有在编译时知道集合的内容(至少是元素的数量)时才能使用它。
因此,使用这个集合初始化器语法(有一个方法,因此有一个可变集合)的主要要求似乎Add
与它最有用的典型情况不一致。
我确信我没有像 C# 设计团队那样考虑过这个问题;似乎这种语法可能有不同的规则,可以更好地与其典型的使用场景相吻合。
我在这里离基地很远吗?使用语法来初始化固定大小的集合的愿望{ }
不像我想的那么普遍吗?还有哪些其他因素可能影响了我根本没有想到的这种语法的要求的制定?