在C#中,存在“标准”初始化方法{Property1 =“a”,Property2 =“b”},并且存在一些用于集合(列表和字典)的特殊变体。 {value1,value2}和{{“key1”,value1},{“key2”,value2}}。在C#中,有没有办法为新数据类型编写自定义对象初始值设定项?
我想有一个树型数据类型的递归对象初始值设定项,但我不知道是否有任何方法来定制该机制。我想要一些看起来像s表达式的东西。 {item1 {item2 item3 item4} {item5 item6}}
我这样做是通过构造函数,但我想要一个terser语法。
你不需要实现ICollection - 只是IEnumerable – 2009-11-16 21:43:09
这不像我想象的那么简洁,但它看起来就像你可以得到的一样接近,看起来像这样的答案是,你不能真正定制了对象初始化机制,但是您可以搭载IEnumerable内置的初始化支持。 – darthtrevino 2009-11-17 00:27:50
找到一篇博客文章讨论这个http://resharper.blogspot.com/2 007/09/c-30-collection-initializers-incomplete.html – darthtrevino 2009-11-17 00:36:13