我用C#这样定义来自类的对象
var something = new SomeThing()
{
Property = "SomeProperty"
}
这样
var something = new SomeThing
{
Property = "SomeProperty"
}
这些定义有什么区别?
答案 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%等效的。