繁体   English   中英

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

[英]Multiple constructors with inheritance c#

我有一个带有多个构造函数的基类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构造函数。 可以解决吗?

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

您可以使用替代设计模式(例如“工厂方法”,“工厂”)来简化构造方法吗?

如果您确实想要构造函数并想要添加复杂的解决方案,请使用以下内容。 不建议这样做,但是您可以将代码共享/生成技术与部分类组合使用(使用构造函数定义一个部分类,而另一个具有所有的属性/成员/等),并且在该部分类中具有构造函数时,T4模板会在基础模板更改时覆盖它。 再次,这增加了很多开销...我不知道您正在谈论多少类,以及您希望它们有多精确。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM