【发布时间】:2013-06-24 00:24:24
【问题描述】:
我最近一直在学习 C# 中的对象初始化器,但现在我想知道它与构造函数冲突时它是如何工作的。
public class A
{
public bool foo { get; set; }
public A()
{
foo = true;
}
public A(bool bar)
{
foo = bar;
}
}
当我尝试这个时会发生什么?
public class B
{
private A a = new A() { foo = false };
private A b = new A(true) { foo = false };
}
构造函数中的默认值是让bool 开始为真并且可以更改的好方法吗?
public A(bool bar = true)
{
foo = bar;
}
【问题讨论】:
-
试试你的例子。
-
所有代码都在那里,只需点击运行
-
是的,默认初始化器仍然有效,但如果你想要多个参数,你可以忘记的参数只是尾部参数。
-
对,我在实际项目中尝试过使用更复杂的代码。抱歉,我猜“当我这样做时会发生什么”部分让我看起来好像只是在问这个问题。不过,我确实想要一些关于它的背景/建议。在上面找不到任何文档。
标签: c# constructor object-initializers