更快/更好的初始化对象属性的方法

时间:2016-01-22 10:53:34

标签: c# variables

有没有办法做到这一点

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

但更有效/更快/更好?

2 个答案:

答案 0 :(得分:2)

使用object initializer

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

此代码较短但速度稍慢,因为实际编译器会创建临时变量并首先对其进行初始化,然后将此值分配给实际变量。

答案 1 :(得分:2)

你可以使用object initializer这样做:

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

使用对象初始化程序的好处首先是对象不会被部分初始化。更重要的是,这只是语法糖,您可以节省时间,而不必为要添加的每个属性编写实例名称。