只是想知道两个对象初始化之间是否有任何区别?
我应该使用哪一个?
有和没有括号()
var data = new Apple()
{
Color = "red",
Taste = "good"
}
和
var data = new Apple
{
Color = "red",
Taste = "good"
}
答案 0 :(得分:7)
当你使用第二种形式时,实际上它是作为第一种形式编译的。第二种形式意味着您要使用无参数构造函数。要小心,因为如果你的类没有任何无参数构造函数你就不能使用它,当然第一种形式也不能使用。
答案 1 :(得分:1)
完全没有区别。他们都会调用无参数构造函数。
他们都变成了:
var data = new Apple();
data.Color = "red";
data.Taste = "good";
编译器。
答案 2 :(得分:0)
无参数构造函数用于保存您的默认错误,例如假设您有参数化构造函数:
public Apple(string color, string taste)
{
data.Color = "red";
data.Taste = "good";
}
有时你/用户可能忘记传递构造函数Apple(x,y)的参数。因此,在类中定义无参数构造函数总是一个好习惯,如:
public Apple()
{
data.Color = "yellow";
data.Taste = "sour";
}
如果忘记使用所需参数值调用构造函数,则将调用默认的无参数构造函数,并将变量初始化为默认值。