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会在代码分析中自动推荐您作为简化语法。
文档中的解释位于此链接下。