类实例化C#

Nij*_*mov 0 c# class instantiation

我是 C# 初学者。

每次我在类中创建构造函数来实例化类时。

class OtherClass
{
    void Main()
    {
        MyClass myClass = new MyClass();
    }
}

class MyClass
{
    public string text;
    public int num;

    public MyClass()
    {
        text = "something";
        num = 12;
    }
}
Run Code Online (Sandbox Code Playgroud)

但今天我看到了新的变体

class OtherClass
{
    void Main()
    {
        MyClass myClass = new MyClass { num = 12, text = "something" };
    }
}

class MyClass
{
    public string text;
    public int num;
}
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下差异吗?

PS 抱歉我的英语。

小智 5

这是标准的C#- 它创建类,然后将值分配给属性。

您应该阅读C#语言规范。

从技术上讲,这与以下内容相同:

var myClass = new MyClass ();
myCVlass.num = 12;
myClass.text = "something";
Run Code Online (Sandbox Code Playgroud)

只是语法糖,即VS会在代码分析中自动推荐您作为简化语法。

文档中的解释位于此链接下。