2016-01-22 176 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! :) –