2016-11-10 55 views
-1

是否存在一個標準術語,用於在不使用顯式構造函數的情況下實例化類的練習,而是初始化其某些屬性?實例化練習的標準術語

new SomeClass { PropertyA = true, PropertyB = "ugly code is ugly" }; 

我猜可能有一個標準的不判斷的術語,然後可能有一個否定的術語。

** ** --- ---後期編輯澄清意見和解答--- *** ---

對象初始化它。

閱讀評論後,我明白對象初始化本身並不是一個壞習慣;問題在於缺乏定義明確的構造函數,而不喜歡在解決方案中傳播對象初始化,這使解決方案難以維護和理解。

壞使用對象初始化的一個例子:

  • Student具有10倍的性能,包括CodeProgram
  • 代碼從10多個不同的點實例化這個類。
  • 每次,CodeProgram正在通過對象初始化定義。

在這種情況下,類Student應該有一個構造函數執行CodeProgram要在實例通過。

+4

這是一個對象初始化簡稱更好。這就是它的所謂,在好時光和壞。這*使用構造函數:在這種情況下的默認構造函數。然後它分配一些屬性。就像它會爲你寫更多的代碼一樣。我從來沒有聽到任何人對此作出評判,但毫無疑問,有人找到了理由。 –

+0

我認爲作者意味着做新的SomeClass(真的,「難看的代碼是醜陋的」)和顯示的問題之間的區別。 – Evk

+0

我們不知道是否有這樣的構造函數可以像這樣。 – belurd

回答

1

這是一個對象初始化。

我不確定你的意思是「否定詞」。實例化一個對象並在其中設置一些屬性沒有任何問題。它比其他

var someClass = new SomeClass(); 
someClass.PropertyA = true; 
someClass.PropertyB = "Clean code is clean"; 
+0

你是對的,但我接受了另一個,因爲它之前來了。關於負面的東西,我更新了有關這個問題的評論。感謝您的快速回答:) – daniloquio