这个:
MyClass c = new MyClass{ StringCollection = { "test2", "test3" }};译成:
MyClass tmp = new MyClass();tmp.StringCollection.Add("test2");tmp.StringCollection.Add("test3");MyClass c = tmp;它从不尝试调用setter,而只是
Add在调用 getter 的结果上调用。请注意,它也不会 清除 原始集合。
C#4规范的7.6.10.3节对此进行了详细描述。
编辑:作为一个兴趣点,我有点惊讶它调用两次吸气剂。我希望它先调用getter,然后再调用
Add两次…规范中包含一个演示该示例的示例。



