如果你BaseClass
看起来像:
public class BaseClass
{
private readonly _element;
public BaseClass(UIElement element)
{
_element = element;
}
}
然后您绝对必须调用基本构造函数,因为它是唯一BaseClass
具有的构造函数。
如果它看起来像这样:
public class BaseClass
{
private readonly _element;
public BaseClass()
{
_element = default(UIElement);
}
public BaseClass(UIElement element)
{
_element = element;
}
}
如果要设置元素,则绝对必须调用基本构造函数,因为它只能在构造函数中设置。
如果它看起来像这样:
public class BaseClass
{
private _element;
public BaseClass()
{
_element = default(UIElement);
}
public BaseClass(UIElement element)
{
_element = element;
}
public UIElement Element
{
get{ return _element; }
set{ _element = value; }
}
}
然后你可以选择:
public class ClassA: BaseClass
{
public ClassA(UIElement element)
: base(element)
{
}
}
public class ClassA: BaseClass
{
public ClassA(UIElement element)
{
Element = element;
}
}
但是,前者更清晰,并且在整体构建过程中没有Element
返回默认值( )的时间段。null
总之,认为这ClassA
是一种 BaseClass
. ClassA
在创建BaseClass
. 确保这种情况发生是构造函数的工作。尽可能多地调用基构造函数是有意义的。