2016-01-22 219 views
-1

更快/更好的辦法是這樣做初始化對象屬性

Planets Mercury = new Planets(); 
Mercury.PlanetName = "Mercury"; 
Mercury.DistanceFromSun = 58000000; 
Mercury.Mass = 33; 
Mercury.EarthDaysForOrbit = 88; 
Mercury.NumberOfMoons = 0; 

但更有效地/快/更好的辦法嗎?

+3

請解釋_why_這不夠高效/快捷/好嗎?我會建議在[CodeReview.SE]上提問,但我認爲這也不適合。 –

+0

你指的是什麼「更有效/更快/更好」?這是否意味着「更快」?不,沒有這樣的改進。 這是否意味着「更清潔」?有些東西你可以做,就像其他答案中提到的那樣稱爲Object initializer。 – HimBromBeere

回答

2

使用object initializer

var Mercury = new Planets() 
{ 
    PlanetName = "Mercury", 
    DistanceFromSun = 58000000, 
    Mass = 33, 
    EarthDaysForOrbit = 88, 
    NumberOfMoons = 0 
} 

此代碼是短,但它會稍微慢一點,因爲實際上編譯器將創建臨時變量,首先初始化,然後指定這個價值,你的實際變量。

+3

它是如何更有效/更快/更好?這也是問題的一部分 –

+0

如果你把一些你認爲/知道得更有效/更快/更快的代碼,請至少解釋_why_和/或顯示一些測試結果這可以驗證你的假設。 –

2

則可以使用object initializer這樣做:

Planets Mercury = new Planets 
{ 
    PlanetName = "Mercury", 
    DistanceFromSun = 58000000, 
    Mass = 33, 
    EarthDaysForOrbit = 88, 
    NumberOfMoons = 0 
}; 

使用對象初始化將第一關是一個對象就不會得到部分初始化的好處。除此之外,這只是語法糖,您可以節省時間,無需爲每個要添加的屬性編寫實例名稱。

+0

錯誤對象必須是這個formet行星水星=新行星() –

+2

它是如何「更有效/更快/更好?」 –

+1

@KuttyRajeshValangai當使用對象初始值設定項時,它不需要使用palenthesis! :) –