可能重复:
Why are C# 3.0 object initializer constructor parentheses optional?C#中的类初始值设定项之间的区别?
是什么instatiating物体之间的差异通过使用
classInstance = new Class() { prop1 = "", prop2 = "" };
和
classInstance = new Class { prop1 = "", prop2 = "" };
可能重复:
Why are C# 3.0 object initializer constructor parentheses optional?C#中的类初始值设定项之间的区别?
是什么instatiating物体之间的差异通过使用
classInstance = new Class() { prop1 = "", prop2 = "" };
和
classInstance = new Class { prop1 = "", prop2 = "" };
没有。第二个只是第一个捷径。第一个允许您将参数包含到构造函数中。所以,如果类没有空的构造函数,则不能使用快捷方式。
你可能在这个问题感兴趣:
Why are C# 3.0 object initializer constructor parentheses optional?
和Eric Lippert's精彩的博客贴子:
简答:没什么。 ()
可以使用,如果你想通过一些构造函数参数,但在你的情况下 ,因为你没有任何,你可以跳过()
。
例如, ()
在这里很有用。
Foo foo = new Foo(someBar){Prop1 = "value1", Prop2 = value2};
,但如果你试图调用无参数的构造函数,它是可选的
Foo foo = new Foo {Prop1 = "value1", Prop2 = value2};
有没有差别比其他的语法,你是仍然调用无参数构造函数。
你需要一个新的关键字吗? – turtlepick 2011-06-10 17:51:43