C# 中类初始值设定项之间的差异
本文关键字:之间 | 更新日期: 2023-09-27 17:58:56
可能的重复项:
为什么 C# 3.0 对象初始值设定项构造函数括号是可选的?
使用
classInstance = new Class() { prop1 = "", prop2 = "" };
和
classInstance = new Class { prop1 = "", prop2 = "" };
简短的回答:什么都没有。如果要传入一些构造函数参数,可以使用该()
,但是在您的情况下,由于您没有任何,您可以跳过()
.
例如。 ()
在这里很有用。
Foo foo = new Foo(someBar){Prop1 = "value1", Prop2 = value2};
但是,如果您尝试调用无参数构造函数,它是可选的
Foo foo = new Foo {Prop1 = "value1", Prop2 = value2};
什么都没有。第二个只是第一个的捷径。第一个允许您将参数包含在构造函数中。因此,如果类没有空构造函数,则无法使用快捷方式。
您可能对此问题感兴趣:
为什么 C# 3.0 对象初始值设定项构造函数括号是可选的?
还有Eric Lippert的精彩博客文章:
模棱两可的可选括号,第一部分
除了语法之外没有区别,无论哪种方式,您仍然调用无参数构造函数。