0

可能重复:
为什么 C# 3.0 对象初始值设定项构造函数括号是可选的?

假设这是我的自定义对象:

public class MyObject {
    public string Name { get; set; }
    public int number { get; set; }

    public MyObject() {

    }
}

这个对象可以定义通用的,或者自定义构造函数和更多的元素,所以我们可以用两种语法创建一个实例和设置属性

MyObject newObj1 = new MyObject { Name = "MyName", number = 10 };
MyObject newObj2 = new MyObject() { Name = "MyName", number = 10 };

使用括号的实例和不带括号的实例之间有什么区别吗?

4

2 回答 2

2

使用括号的实例和不带括号的实例之间有什么区别吗?

不。

如果您使用 ReSharper,它会将第二个构造标记为冗余括号,并建议您删除它们。然而,这只是风格问题。

于 2012-06-17T06:12:20.020 回答
1

使用括号的实例和不带括号的实例之间有什么区别吗?

是的,

第一个是对默认构造函数的隐式调用,第二个是显式调用。

虽然功能相同,但编译器对它们的看法不同。

于 2012-06-17T06:19:28.993 回答