是否可以在将参数传递给基础构造函数之前处理它们?
如:
A --> B
其中A是抽象类,B是子类。
A的构造函数是这样的:
Protected A (MyObject myObject)
B的构造函数是这样的:
Public B (string objectName)
我希望它是这样的
Public B (String objectName) : base (MyObject myObject)
{
myObject = new MyObject (objectName);
}
答案 0 :(得分:5)
如果你想做一些非平凡的事情(不能自然地融入你可以内联到base
调用的单个表达式中),那么唯一的方法是在{{1方法,例如:
static
答案 1 :(得分:1)
是的,但仅作为单个表达式:
public B(String objectName) : base(new MyObject(objectName)) {
}
请注意,由于它在构造类之前运行,因此无法访问实例成员。
如果要运行多个表达式(例如,参数验证),可以调用静态方法。