我看过并没有完全找到类似于我正在处理的内容。希望有一个解决方案,或提供更好的实施。我有一个可以传递一个可选参数的类,该参数被保存到创建的实例中。然后我有一个具有类似可选参数的派生类,但在其非参数构造函数中执行其他准备工作,而不考虑可选参数。让它调用基类参数构造函数的正确方法是什么,但仍然执行派生的非参数构造函数。调用base()和this()的构造函数
public class MyBaseClass
{
protected object preserveParm;
protected int someValue;
public MyBaseClass()
{
someValue = 1;
}
public MyBaseClass(object SomeParm) : this()
{
preserveParm = SomeParm;
}
}
public class DerivedClass : MyBaseClass
{
private int customSecondaryProp;
private DateTime when;
public DerivedClass()
{
customSecondaryProp = 10;
someValue = 5;
}
public DerivedClass(object SomeParm) : base(SomeParm)
{
when = DateTime.Now;
}
}
所以,如果我做了
DerivedClass test = new DerivedClass("testing");
我需要它击中了基类来保存参数,但也打击了派生类的非参数设置采样虚假值。
现在,Derived参数方法被命中,然后命中基类的参数构造函数,该构造函数调用基类的“this()”,并将链返回到DerivedClass参数构造函数,完成自身,但从不碰到DerivedClass构造函数。有没有办法强制baseclass无参数和DerivedClass无参数构造函数?
我通常有非参数的构造函数调用参数的构造函数有一个合适的值,而不是你周围的道路”重新做。然后所有的逻辑结束于类参数最多的构造函数,它可以调用最合适的基类构造函数(如果需要,可以再次填入省略的参数以调用其最参数化的形式) –
@ Damien_The_Unbeliever,从来没有想过相反的事实,因为实际的传入对象比简单的“对象”更复杂,但会研究它。谢谢。 – DRapp
@nawfal,对于已经选择了解决方案的问题,请不要试图将意见反馈给重复项......在我看来,这只是浪费。 – DRapp