在c#中我曾经通过调用默认构造函数来初始化我的类。您可以在课程名称
之后提及()var class = new MyClass()
{
Property= 1,
Property2 = "test"
}
但上次我看到没有()的示例。喜欢这个
var class = new MyClass
{
Property= 1,
Property2 = "test"
}
有和没有()有什么区别吗?
答案 0 :(得分:2)
没有区别。如果使用resharper,则将此()
标记为冗余。
您可以使用()
或不使用,这取决于您的风格。
答案 1 :(得分:2)
此功能称为对象初始化程序,它已在C#3.0中引入。
使用它时,()
是多余的,因此两个代码示例之间没有区别
答案 2 :(得分:1)
正如您在IL代码中看到的那样,它们是相同的:
internal class Program
{
public class MyClass
{
public int Property
{
get;
set;
}
public string Property2
{
get;
set;
}
}
private static void Main(string[] args)
{
Program.MyClass expr_06 = new Program.MyClass();
expr_06.Property = 1;
expr_06.Property2 = "test";
Program.MyClass expr_20 = new Program.MyClass();
expr_20.Property = 1;
expr_20.Property2 = "test";
}
}