我有一个父类,它有一个重载的构造函数,我有一个子类,它有一个带有可选参数的构造函数。有没有办法让子类的构造函数仍然暴露父类的重载,同时保留它自己的可选参数?
这是两个类及其所需构造函数的一些示例代码:
class Foo {
Foo(String arg0)
{
// do some stuff with arg0
}
Foo(String arg0, List<x> arg1)
: this(arg0)
{
// do some other stuff with arg1 that is special because we have an arg1
}
}
class Bar : Foo {
Bar(String arg0, List<y> arg2 = null, String arg3 = "")
: base(arg0)
{
// some third thing with arg2 and arg3
}
}
这是另一个子类构造函数的方法签名,我还想公开父构造函数的重载,但问题是如何做到这一点:
Bar(String arg0, List<x> arg1, List<y> arg2 = null, String arg3 = "")
我认为,我已经找到了解决方案,但我不确定它是否尽可能干净。我已将其发布为答案,以防万一它是唯一的选择。