C# 将允许使用 Object() 或 Object{} 创建对象。Object() 和 Object{} 有什么区别
public item getitem()
{
return new item()
}
public item getitem()
{
return new item {}
}
C# 将允许使用 Object() 或 Object{} 创建对象。Object() 和 Object{} 有什么区别
public item getitem()
{
return new item()
}
public item getitem()
{
return new item {}
}
这个语法:
new SomeType{}
是一个对象初始化表达式,碰巧没有设置任何属性。它隐式调用无参数构造函数。您可以在大括号内添加属性分配:
new SomeType { Name = "Jon" }
这个语法:
new SomeType()
只是对无参数构造函数的调用,没有机会设置属性。
请注意,您也可以使用对象初始化器显式调用构造函数(参数化或非参数化):
// Explicit parameterless constructor call
new SomeType() { Name = "Jon" }
// Call to constructor with parameters
new SomeType("Jon") { Age = 36 }
有关对象初始化器的更多详细信息,请参阅 C# 4 规范的第 7.6.10.2 节。
我强烈建议,如果您不设置任何属性,则只是new SomeType()
为了清楚起见而使用。在不设置任何属性的情况下使用对象初始化器很奇怪。
item()
调用默认构造函数,而item {}
调用默认构造函数并允许使用(在这种情况下为空)对象初始化器。
new item {}
使用对象初始化器。在您的示例中,没有区别,但通常new item()
如果您不希望实际使用对象初始化程序,您只需调用即可。