Overriding(Actor)如果我有一个基类和两个派生类,我想手动实现两个派生类之间的转换,有没有办法做到这一点?(在C#中)抽象类AbsBase{privateintA;私有整数B;私有整数C;私人诠释D;}classImp_A:AbsBase{privateListE;}classImp_B:AbsBase{privateintlastE;通常我会从Imp_A->Imp_B转换,我希望E列表中的最后一个值是“LastE”。另外,如果有Salary、Hourly、Consultant和FormerEmployees等三个或更多的实现类怎么办?这在架构上是否合理(我无法描述整个应用程序并且很简洁)是否可能?我将编写一个转换器,但据我所知,该转换器将创建一个Imp_B类的新对象,我不需要它,因为“员工”在任何时候都只是选项之一。-Devin您必须实现显式或隐式运算符。classImp_A:AbsBase{publicstaticexplicitoperatorImp_B(Imp_Aa){Imp_Bb=newImp_B();//用b做事returnb;现在您可以执行以下操作。Imp_Aa=newImp_A();Imp_Bb=(Imp_B)a;如果可能的话,我建议你这样写Imp_B:classImp_B:Imp_A{privateintA;私有整数B;私有整数C;私人诠释D;privateintlastE{get{返回this.E.Last();如果您实际上不能从ImpB派生,您将无法以您想要的方式透明地“处理”ImpA对象作为ImpB,因为它们在内存中不是一回事。因此,实施显式转换。以上就是C#学习教程:涵盖了(演员)分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
