这是这个封闭问题的衍生,我有一个答案,但在我回答之前它就被关闭了。这是问题的调整版本:
为什么一个类会有一个只设置属性的内部构造函数?
public class SomeClass
{
public SomeClass() : this(new SomeOtherClass()) { }
internal SomeClass(SomeOtherClass c) { _someField = c; }
private SomeOtherClass _someField;
protected void SomeMethod() {
var foo = _someField.Bar();
}
}
这样做有什么好处,你为什么不这样做:
public class SomeClass
{
public SomeClass() { _someField = new SomeOtherClass(); }
private SomeOtherClass _someField;
protected void SomeMethod() {
var foo = _someField.Bar();
}
}