具有默认值或两个构造函数的构造方法

时间:2014-04-07 14:04:23

标签: c# oop

两者中的好习惯是什么?

a)具有默认值的构造函数?

public DoFoo(string parameter = defaultValue)

b)两个构造函数而不是默认值

public DoFoo()

public DoFoo(string parameter) 
: this()

2 个答案:

答案 0 :(得分:0)

制作默认构造函数并使用默认参数制作构造函数是两回事。哪个更好,取决于您的特殊要求。

答案 1 :(得分:0)

将我的评论写回答:

您提供的2个示例表现不同。

要有相同的行为,您应该执行以下操作:

public DoFoo()
  : this("defaultValue")
{
}

public DoFoo(string parameter)
{
  // whatever needs to be done
}

我会坚持使用2个构造函数 - 只是为了清楚。

另外正如Habib提供的链接所指出的那样,你可能会遇到序列化问题。