Yec*_*kiy 5 c# initializer-list
有时在类名后面指定初始化列表而不使用()运算符:
Cat cat = new Cat { Age = 10, Name = "Fluffy" }
Run Code Online (Sandbox Code Playgroud)
其他时候在()运算符后指定:
List<Cat> cats = new List<Cat>
{
new Cat(){ Name = "Sylvester", Age=8 }
}
Run Code Online (Sandbox Code Playgroud)
我假设差异是因为这里新的Cat()在列表中.但我仍然不明白为什么它应该是不同的.那么为什么不同,何时使用哪种语法?
谢谢.
必须指定()何时没有默认(无参数)构造函数 - 何时必须提供参数.
当类具有默认构造函数(或无参数构造函数)时,您始终可以省略()使用初始化程序的时间.编译器为您提供了魔力,您可以将事物视为 - 编译器为您插入它们.