c# - 使抽象方法可用于子类
问题描述
我希望能够通过程序在其他类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#。
其次,如果您想在其他任何地方都可以访问方法,您可能需要一个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");
}
}
推荐阅读
- python - Dask 数据框的值
- javascript - Raspberry Pi Zero W 上的 Node.js,依赖项不会自动下载
- xamarin.forms - Visual Studio 2019 无法在 Watch 窗口中查看应用级别定义的静态变量
- javascript - 如何使用其中的元素调整画布的大小?
- python - 聚类以从计数数据中查找最可能的时间段
- arrays - Perl 数组循环
- amazon-web-services - 为什么 Redshift 和 S3 之间的 AWS 文件大小不同?
- sql - 如何获取不同最大组合的计数 - 其中 A 列和 B 列中的值都需要与前一行不同
- sql - 有关从日期中提取年份的更多信息 - Oracle
- scala - 如何修复scala中foreach()的缺失参数类型