Object()和Object {}之间的区别

时间:2012-07-20 16:03:51

标签: c# oop object constructor

C#将允许使用Object()或Object {}创建对象。与Object()和Object {}

有什么区别
public item getitem()
{

return new item()

}

public item getitem()
{

return new item {}

}

3 个答案:

答案 0 :(得分:8)

此语法:

new SomeType{}

object initializer expression,碰巧没有设置任何属性。它隐式调用无参数构造函数。您可以在大括号中添加属性分配:

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()即可。在没有设置任何属性的情况下使用对象初始值设定器很奇怪。

答案 1 :(得分:6)

item()调用默认构造函数,而item {}调用默认构造函数并允许使用(在本例中为空)object initializer

答案 2 :(得分:1)

new item {}使用object initializer。在您的示例中,没有区别,但如果您不希望实际使用对象初始值设定项,通常只需调用new item()