因为我有一个抽象基类说MyBase。 它有参数化的构造函数和字符串值它有抽象方法调用。 我也有一个孩子说MyChild。 它没有任何构造函数只有一个有公共方法,我想把基类的参数化构造函数调用到子类。
请相应地给我解决方案......
答案 0 :(得分:1)
如果未在子类中指定构造函数,则将使用父类的构造函数。即您可以将您的Child类实例化为
Child child = new Child(initString);
上面的Child构造函数(如果未定义)将只传播(调用)具有相同签名的父构造函数。
答案 1 :(得分:0)
没有任何背景很难帮助你,但我会尝试。 也许你可以这样做:
abstract class MyBase
{
protected string _foo;
protected MyBase(string foo)
{
_foo = foo;
}
}
class Child : MyBase
{
public Child()
:base(string.Empty)
{}
public string Foo
{
get
{
return _foo;
}
set
{
_foo = value;
}
}
}
因此,由于无法实例化抽象类,因此可以创建var obj = new Child() {Foo = "string"};
但是,只有当MyBase
只保留foo
值时,您才可以选择此变体。
但是,如果您可以更改Child
,最好添加一个构造函数,就像@Adam Houldsworth建议的那样。