【发布时间】:2011-03-30 12:46:17
【问题描述】:
有人可以建议我在编写 C# 构造函数时采用什么方法吗?
在其他语言中,例如C++,一切都很好 - 您通常不会使内部字段可见并为它们提供 getter / setter。
这意味着,您可以为您的类提供构造函数,这些构造函数会初始化所有/部分本地成员并感到高兴。
C#,然而,有properties,它允许我们写这样的东西:
Class x = new Class { Field1 = new Field1 ...., Field2 = new Field2 }
这允许对对象构造进行链接,并且我认为可以删除许多构造函数,如果我们没有properties,这将是必需的。
将它与属性的默认值相结合,正如我所假设的,我们可以完全摆脱非专业构造函数,它们实际上做了一些工作。
现在 - 是否可以删除冗余构造函数并允许通过字段初始化来构造对象?
这种方法的缺点是什么?有人能给出关于结合使用字段和构造函数的一般性建议,可能是rules of thumb?
谢谢。
【问题讨论】:
-
那些不是字段,它们是属性。
-
其他语言(尤其是 C++)也有字段。在您的示例中,
Field1是一个属性。
标签: c# constructor field initializing