可能重複:
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