具有继承c#的多个构造函数

时间:2014-11-19 16:12:26

标签: c# inheritance constructor

我有一个带有多个构造函数的基类B.我有一个派生类D,它的构造函数中有一些额外的字段,如下所示实现。

B(args1) {...}
B(args2) {...}
...
B(argsN) {...}

D(args1, additional) : B(args1) {...}
D(args2, additional) : B(args2) {...}
...
D(argsN, additional) : B(argsN) {...}

问题是,每次使用新的args添加新的B构造函数时,我必须创建一个新的D构造函数。有什么方法吗?

1 个答案:

答案 0 :(得分:0)

如果您希望它在基类中并且期望它们相同,则必须在派生类中定义构造函数。但是,您可以使用建议的默认值。或者,有一个基于字典的构造函数,派生类从中获取值。

您是否可以使用Factory Method,Factory等替代设计模式来简化构造方法?

如果您真的想要构造函数并想要添加复杂的解决方案,请使用以下内容。不推荐它,但你可以使用代码共享/生成技术与部分类的组合(定义一个部分类与构造函数,另一个具有所有属性/成员/等)和在那个具有构造函数,当基础模板更改时,T4模板会覆盖它。再次,这增加了很多开销...我不知道你在谈论多少课程,以及你想要它们的确切程度。