是否可以在将参数传递给基础构造函数之前对其进行处理?
如:
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);
}
最佳答案
如果你想做一些不平凡的事情(这不能自然地适合你可以内联到 base
调用中的单个表达式),那么唯一的方法就是在静态
方法,例如:
public B (string objectName) : base (SomethingComplex(objectName))
{
//...
}
static MyObject SomethingComplex(string objectName)
{
// this can now be arbitrarily complex
if(string.IsNullOrWhiteSpace(objectName))
throw new ArgumentException("objectName")
// etc
return new MyObject(objectName);
}
关于c# - 在调用基础构造函数之前处理参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15027423/