C# 中类初始值设定项之间的差异

本文关键字:之间 | 更新日期: 2023-09-27 17:58:56

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

使用

classInstance = new Class() { prop1 = "", prop2 = "" };

classInstance = new Class { prop1 = "", prop2 = "" };

C# 中类初始值设定项之间的差异

简短的回答:什么都没有。如果要传入一些构造函数参数,可以使用该(),但是在您的情况下,由于您没有任何,您可以跳过().

例如。 ()在这里很有用。

  Foo foo = new Foo(someBar){Prop1 = "value1", Prop2 = value2};

但是,如果您尝试调用无参数构造函数,它是可选的

  Foo foo = new Foo {Prop1 = "value1", Prop2 = value2};

什么都没有。第二个只是第一个的捷径。第一个允许您将参数包含在构造函数中。因此,如果类没有空构造函数,则无法使用快捷方式。

您可能对此问题感兴趣:

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

还有Eric Lippert的精彩博客文章:

模棱两可的可选括号,第一部分

除了语法之外没有区别,无论哪种方式,您仍然调用无参数构造函数。