我正在创建一个控制台应用程序 我有一个课,我写了一些方法.现在我想在另一个类中覆盖该类的某些方法.但是只有在满足条件时才应该覆盖.
例如,
public partial Class MainClass { public string GetPath() { string temp = Method1(); return temp; } protected virtual string Method1() { //logic } }
如果满足某些条件,则应调用仅重写的方法
public partial class ChildClass : MainCLass { public override void Method1() { //MY Logic } }
我怎样才能做到这一点?有可能这样做吗?
在ChildClass
你可以做这样的事情:
public partial class ChildClass : MainCLass { public override void Method1() { if(condition) { base.Method1(); return; } //YOUR LOGIC } }
例
public class A { public virtual void MethodA() { Console.WriteLine("A:MethodA"); } } public class B : A { public bool CallBase { get; set; } public B() { CallBase = false; } public override void MethodA() { if (CallBase) { base.MethodA(); return;; } Console.WriteLine("B:MethodA"); } } class Program { static void Main(string[] args) { A a = new A(); B b = new B(); a.MethodA(); b.MethodA(); b.CallBase = true; b.MethodA(); A c = new B(); c.MethodA(); A d = new B(true); d.MethodA(); Console.ReadKey(); } }
产量
答:方法A B:方法A A:方法A B:方法A A:方法A.