我知道如何从相同的类或基类中为构造函数调用另一个构造函数,但是如何同时执行这两个操作?这是我要实现的示例,请注意,在实际情况下,我们可能想做一些比设置属性更复杂的事情:
public class BaseClass
{
public BaseClass(object param)
{
// base constructor
}
}
public class DerivedClass
{
DateTime Date { get; private set; }
public DerivedClass()
{
Date = GenerateDate();
}
public DerivedClass(object param) : base(param)
{
// How do I make it call DerivedClass() ?
}
}
此代码实际上在Sharp Lab中进行编译。并不是我必须解决一些次要问题。
using System;
public class BaseClass
{
public BaseClass(object param)
{
// base constructor
}
}
public class DerivedClass : BaseClass
{
public DateTime Date { get; private set; }
public DerivedClass() : this(new object()) { }
public DerivedClass(object param) : base(param)
{
//Do Date = GenerateDate(); here
//Had to cut your pseudo code, as it broke compilation
}
}
您的处理方法错误:您需要DerivedClass()
才能调用DerivedClass(object param)
。对于多个构造函数,您实际编写的构造函数始终是带有most参数的构造函数。其他所有构造函数都可以在那里链接,并为每个步骤提供默认值。