new Object {}和new Object(){}之间有什么区别

时间:2014-01-21 11:12:06

标签: c#

我用C#这样定义来自类的对象

var something = new SomeThing()
{
    Property = "SomeProperty"
}

这样

var something = new SomeThing
{
    Property = "SomeProperty"
}

这些定义有什么区别?

5 个答案:

答案 0 :(得分:6)

无。 ()是多余的。唯一需要的是该对象具有默认构造函数。

答案 1 :(得分:3)

这样没有区别。使用函数作为构造函数(使用new运算符且没有参数)时,括号是可选的。当您不使用new运算符时,在调用函数时总是需要括号。

答案 2 :(得分:3)

您可以省略括号,将使用默认构造函数(假设有一个可用)。

使用对象初始值设定项时,如果要指定其他构造函数,则只需使用括号。

Eric Lippert介绍了为什么括号可选:https://stackoverflow.com/a/3661197

答案 3 :(得分:3)

当括号为空时没什么。

只有在提供参数时它们才有意义;你可以同时做到这一点:

var something = new SomeThing("some other value")
{
    Property = "SomeProperty"
}

答案 4 :(得分:2)

没有区别。在这种情况下,您可以省略空括号。对于编译器,这两者是100%等效的。