我是C#的新手,试图找出如何轻松实现以下内容:
我有一个订阅者:
public interface ISubscriber
{
void HandleMessage(IMessage message);
}
class TriggerSubscriber : ISubscriber
{
public void HandleMessage(IMessage message)
{
//This will be called by default
}
public void HandleMessage(TriggerMessage message)
{
//This won't work, why?
}
}
Run Code Online (Sandbox Code Playgroud)
尝试处理以下消息:
public class TriggerMessage : IMessage
{
string identifier { get; set; }
public TriggerMessage(string triggerIdentifier)
{
identifier = triggerIdentifier;
}
}
public interface IMessage
{
}
Run Code Online (Sandbox Code Playgroud)
我预计会调用以下内容:
public void HandleMessage(TriggerMessage message)
Run Code Online (Sandbox Code Playgroud)
代替
public void HandleMessage(IMessage message)
Run Code Online (Sandbox Code Playgroud)
同
ISubscriber trigger = new …Run Code Online (Sandbox Code Playgroud)