首页 / C# / c#-从其基类传递构造函数
c#-从其基类传递构造函数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#-从其基类传递构造函数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1713字,纯文字阅读大概需要3分钟。
内容图文
外部框架具有以下类:
public class Boatmaker
{
}
public class Wood
{
}
public class Axe
{
}
public class Lake
{
}
public class Boat
{
public Boat(Wood wood, Axe axe) {
}
public Boat (Boatmaker maker) {
}
public Boat (Lake lake) {}
}
我需要对Boat进行很多子类化.对于我的每个子类,我必须假设外部框架可能想通过上述任何构造函数实例化它.因此,我的子类获得了传递构造函数.请注意,他们永远不会消失:
public class SmallBoat: Boat
{
public void DoSmallBoatStuff() {
// some code here
}
private void Initialize() {
this.DoSmallBoatStuff();
}
public SmallBoat(Wood wood, Axe axe): base(wood, axe) {
this.Initialize();
}
public SmallBoat (Boatmaker maker): base(maker) {
this.Initialize();
}
public SmallBoat (Lake lake): base(lake) {
this.Initialize();
}
}
public class Canoe: SmallBoat
{
public void DoCanoeStuff() {
// some code here
}
private void Initialize() {
this.DoCanoeStuff();
}
public Canoe(Wood wood, Axe axe): base(wood, axe) {
this.Initialize();
}
public Canoe (Boatmaker maker): base(maker) {
this.Initialize();
}
public Canoe(Lake lake): base(lake) {
this.Initialize();
}
}
我想知道是否有一种方法可以简化代码的外观.在SmallBoat和Canoe中构造函数的编写方式之间唯一的区别是SmallBoat或Canoe.其他一切都一样.
因此,如果有一种编写构造函数而不实际使用构造函数中的类名的方法,那么它将大有帮助.我可以使用没有.tt文件的直接复制和粘贴(这对我来说实际上并不可行-我的大部分工作都没有在Visual Studio中完成).有没有办法做到这一点?
解决方法:
不,那里没有.您必须指定要从当前类中使用的基类的构造函数.没有提及真实的类名,就无法编写构造函数.
它可能只是简化了显示,但是如果Initialize是唯一调用的方法,则可能需要将该调用移至调用受保护的Initialize方法的基类,您可以从实现类中覆盖该方法. (您必须考虑调用该方法和实例化属性/字段的顺序.在那里您可能会遇到麻烦,因此在您所处的环境中可能不可行)
内容总结
以上是互联网集市为您收集整理的c#-从其基类传递构造函数全部内容,希望文章能够帮你解决c#-从其基类传递构造函数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。