我最近看到这两件事,我有点困惑。
var blah = new MyClass() { Name = "hello" }
and
var blah = new MyClass { Name = "hello" }
有什么不同?为什么它们都有效?
Update:这是否意味着如果我在构造函数中有一些东西做了一些计算,我就必须调用第一个?
据我所知,它们完全等效。 C# 规范(或者至少是 Microsoft 的实现)允许您在使用默认构造函数(无参数)时省略 (),只要您使用大括号(即语法对象初始化器 http://msdn.microsoft.com/en-us/library/bb384062.aspx)。请注意,这里的对象初始值设定项与构造函数没有区别 -new MyClass
bit 仍然被单独解释为对默认构造函数的调用。就个人而言,我建议您始终包含圆括号 () 以保持一致性 - 您need当您后面没有对象初始值设定项时,它们。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)