我正在处理以前由其他开发人员编写的一些代码,我遇到了下面的代码块:
/// <summary>
/// Default Constructor.
/// </summary>
public Body(Revision parent)
{
mContainer = parent;
mSections = new ArrayList();
mSummary = new ArrayList();
}
/// <summary>
/// Constructs a Body from specified ParseElement.
/// </summary>
/// <param name="parent">Revision container.</param>
/// <param name="elem">Source ParseElement.</param>
public Body(Revision parent, ParseElement elem) : this(parent)
{more constructing stuff}
据我所知,重载的构造函数也会使用我发送的Revision调用默认构造函数,导致可以从重载的构造函数访问初始化的ArrayLists。这是正确的,还是我完全糊涂了?
答案 0 :(得分:12)
是的,这是正确的。但是,要纠正您的术语:
答案 1 :(得分:3)
这是正确的,该技术称为构造函数链接。在这种情况下,this
调用可以松散地显示为
在当前构造函数
之前运行指定的构造函数
它们都针对同一个对象实例运行,因此在原始对象中可以看到被调用的更改。