首页 > 解决方案 > 使抽象方法可用于子类

问题描述

我希望能够通过程序在其他类RaiseMessage上使用 Abstract Class 上存在的方法。AgentBase

public class MNyTestAgent: AgentBase
{
   RaiseMessage("hey", "hey")

   var a = new Foo();
}

public class Foo
{
   public Foo()
   {
      RaiseMessage("","") -<< how do i use it here 
   }
}

标签: c#oop

解决方案


首先,您的代码不是有效的 C#。

其次,如果您想在其他任何地方都可以访问方法,您可能需要一个public static. 要实现一种public static方法,您需要首先重新考虑您的生活选择,因为在Agent课堂上这样做看起来像是糟糕的设计,并且违反了 OOP 原则。如果您仍然决定需要它,那么这样的事情应该可以工作:

public abstract class AgentBase
{
   public static RaiseMessage(string title, string message)
   {
        // Implementation.
   }
}

public class MNyTestAgent: AgentBase
{
    public MNyTestAgent()
    {
        AgentBase.RaiseMessage("hey", "hey");
    }

}

public class Foo
{
   public Foo()
   {
      AgentBase.RaiseMessage("hey", "hey");
   }
}

推荐阅读