当前位置: 首页 > 编程语言 > C#

自动调用基本方法分享

时间:2023-04-10 18:25:23 C#

AutomaticallyCallBasicMethod我需要在调用override的时候自动调用基类方法(比如构造函数调用base)。例如:classA{publicvoidFun(){Console.Write("ClassA!");}}classB:A{publicvoidFun(){Console.Write("ClassB!");我认为SeeGradeAonscreen!B级!当执行下一段代码时:Bb=newB();b.乐趣();谁能告诉我示例代码是否需要更改或编写得更好才能获得所需的结果?谢谢。如果您不想显式调用它并因此确保在派生类中调用A.Fun()那么您可以使用称为模板方法模式的东西:classA{publicvoidFun(){Console.Write("A级!”);乐趣保护();}protectedvirtualvoidFunProtected(){}}classB:A{protectedoverridevoidFunProtected(){Console.Write("ClassB!");这将为您提供:newA()。Fun()->“A类!”newB().Fun()->“A类!B类!”如果你想要这样的行为,你需要改变平台/语言。.NET不会自动调用基本方法。您需要明确地调用它。您的方法也需要是虚拟的,或者将其隐藏在派生类中:classA{publicvirtualvoidFun(){Console.Write("ClassA!");}}classB:A{publicoverridevoidFun(){//调用将打印A类的基方法!基地.乐趣();Console.Write("B类!");现在当你这样做时:Bb=newB();b.乐趣();你会得到想要的结果。仍然像这样工作:interfaceIFun{voidFun();}抽象类A:IFun{voidIFun.Fun(){Console.Write("ClassA!");乐趣();}受保护的抽象voidFun();}classB:A{protectedoverridevoidFun(){Console.Write("ClassB!");}}IFunb=newB();b.乐趣();如果对象引用是IFun,则此方法有效。仅供参考,您可以使用将A放在B中的包装模式。这是一个粗略的例子!以上就是C#学习教程的全部内容:自动调用基本方法。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注——interfaceIFunClass{voidFun();}classA:IFunClass{publicvoidIFunClass.Fun(){Console.Write("ClassA!");}}classB:IFunClass{publicB(IFunClassf){this.m_SomethingFun=f;}publicvoidIFunClass.Fun(){这个。m_SomethingFun.Fun();Console.Write("B类!");私人IFunClassm_SomethingFun;}A=newA();Bb=新B(a);b.Fun()//会在b.Fun()里面先调用一个.Fun()本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: