假设我在我的C#程序中有以下基类和派生类:
换句话说,同时调用
有没有方法可以实现这一点,还是在这种情况下我只需要重新编写每个构造函数中的代码?
谢谢!!
class BaseClass
{
public BaseClass() { }
public BaseClass(int someVal)
{
// do something here
}
}
class DerivedClass : BaseClass
{
public DerivedClass(string somethingNew)
: base()
{
// do something with the somethingNew varible
}
public DerivedClass(string somethingNew, int someVal)
: base(someVal)
{
// do **THE SAME THING** with the somethingNew varible as in first constructor
}
}
我的问题出现在最终构造函数中 - 理想情况下,我希望能够做一些类似于以下的事情(尽管这不会编译):
public DerivedClass(string somethingNew, int someVal)
: base(someVal)
: this(somethingNew)
{
}
换句话说,同时调用
base
和第一个构造函数。有没有方法可以实现这一点,还是在这种情况下我只需要重新编写每个构造函数中的代码?
谢谢!!
DerivedClass
中,您的(string somethingNew)
构造函数调用了base()
- 在您提出的示例中,您是否希望显式的base(someVal)
覆盖this(somethingNew)
中的base()
调用? - NWardbase(someVal)
,然后再调用this(somethingNew)
构造函数中的代码。 - John Bustos