在c#中我用来通过调用默认构造函数来初始化我的类。您可以类名在C#中没有()的类初始化
var class = new MyClass()
{
Property= 1,
Property2 = "test"
}
但我最后一次看到的例子没有()后提()。像这样
var class = new MyClass
{
Property= 1,
Property2 = "test"
}
与没有区别吗?
在c#中我用来通过调用默认构造函数来初始化我的类。您可以类名在C#中没有()的类初始化
var class = new MyClass()
{
Property= 1,
Property2 = "test"
}
但我最后一次看到的例子没有()后提()。像这样
var class = new MyClass
{
Property= 1,
Property2 = "test"
}
与没有区别吗?
此功能称为对象初始化程序,它已在C#3.0中引入。
当你使用它时,()
是多余的,所以没有区别的两个代码示例
没有区别。如果您使用resharper,则将其标记为冗余。
您是否可以使用()
,这取决于您的风格。
之间。如您在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";
}
}
没有,有ISN”任何。这是一回事。只是无参数构造函数的合成糖。 – Ian
@Sinatr不是一个人。这两个代码示例都是对象初始化器。 –
@PatrickHofman,是的,谢谢,很快我会学会仔细阅读问题;) – Sinatr