使用新的Class()和新的Class {}从类创建对象有什么区别?

sga*_*dev 0 .net c# oop class object

我有以下课程:

public class TestClass {
    public string ClassName {
        get;
        set;
    }
}
Run Code Online (Sandbox Code Playgroud)

做的有什么区别:

var instance = new TestClass();
Run Code Online (Sandbox Code Playgroud)

并做

var instance = new TestClass { };
Run Code Online (Sandbox Code Playgroud)

我认为你需要包含()来调用对象的构造函数.那是什么意思?

编辑:有人可以解释哪个最好?或者,如果忽略构造函数,优点或缺点?

编辑2:对不起,如果我问过已经回答的问题.差异对我来说有点清楚,但我真的不明白我如何混合和匹配()和{},因为有时候()被忽略了,我想知道我什么时候能这样做

Dav*_*d L 5

第一个示例实例化一个新实例.

第二个示例通过对象初始化语法实例化一个新实例.

他们最终都创建了一个新实例.

如果您需要或想要在实例化期间设置类的公共属性或字段,则可以使用后者:

var instance = new TestClass { ClassName = "TestingInstance" };
Run Code Online (Sandbox Code Playgroud)

而不是

var instance = new TestClass();
instance.ClassName = "TestingInstance";
Run Code Online (Sandbox Code Playgroud)

在创建新对象和设置大量属性时,它本质上是"语法糖",使您的生活更容易(并且对于某些开发者来说更​​明确).

当使用对象初始化,PARAMS ()是可选的,但括号{}和语句的结束分号;是必需的