在我的控制台应用程序中,有一个抽象工厂类“Listener”,其中包含用于监听和接受连接以及生成客户端类的代码。该类被另外两个类(WorldListener和MasterListener)继承,这些类包含更多协议特定的重写和函数。
我还有一个辅助类(ConsoleWrapper),它封装并扩展了System.Console,包含用于向控制台写入关于WorldListener和MasterListener实例正在发生的信息的方法。
我需要一种方法在抽象ListenerClass中确定是哪个继承类调用了它的方法。
任何有关此问题的帮助都将不胜感激!我手足无措:X
下面是我试图做的事情的简化示例。
我还有一个辅助类(ConsoleWrapper),它封装并扩展了System.Console,包含用于向控制台写入关于WorldListener和MasterListener实例正在发生的信息的方法。
我需要一种方法在抽象ListenerClass中确定是哪个继承类调用了它的方法。
任何有关此问题的帮助都将不胜感激!我手足无措:X
下面是我试图做的事情的简化示例。
abstract class Listener
{
public void DoSomething()
{
if(inheriting class == WorldListener)
ConsoleWrapper.WorldWrite("Did something!");
if(inheriting class == MasterListener)
ConsoleWrapper.MasterWrite("Did something!");
}
}
public static ConsoleWrapper
{
public void WorldWrite(string input)
{
System.Console.WriteLine("[World] {0}", input);
}
}
public class WorldListener : Listener
{
public void DoSomethingSpecific()
{
ConsoleWrapper.WorldWrite("I did something specific!");
}
}
public void Main()
{
new WorldListener();
new MasterListener();
}
期望输出
[世界] 做了些什么!
[世界] 我做了某件具体的事情!
[主人] 做了些什么!
[世界] 我做了某件具体的事情!