不可以,编译器需要一个名为方法的方法
Add来使集合初始化程序起作用。这是在C#规范中定义的,无法更改:
C#语言规范-7.5.10.3集合初始化程序
应用了集合初始值设定项的集合对象必须是实现的类型,
System.Collections.IEnumerable否则会发生编译时错误。对于按顺序指定的每个元素,集合初始值Add设定项将使用元素初始值设定项的表达式列表作为参数列表的方式在目标对象上调用一个方法,并对每次调用应用正常的重载解析。因此,
收集对象必须包含Add每个元素初始化程序 的适用 方法 。 [强调我的]
当然,该
Add方法可以采用多个参数(例如
Dictionary<TKey, TValue>):
dic = new Dictionary<int, int> { { 1, 2 }, { 3, 4 }};// translated to:dic = new Dictionary<int, int>();dic.Add(1, 2);dic.Add(3, 4);


