【发布时间】:2016-07-07 20:01:46
【问题描述】:
我是 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?
}
}
正在尝试处理以下消息:
public class TriggerMessage : IMessage
{
string identifier { get; set; }
public TriggerMessage(string triggerIdentifier)
{
identifier = triggerIdentifier;
}
}
public interface IMessage
{
}
我预计会调用以下代码:
public void HandleMessage(TriggerMessage message)
而不是
public void HandleMessage(IMessage message)
与
ISubscriber trigger = new TriggerSUbscriber();
trigger.HandleMessage(
new TriggerMessage()
);
我错过了什么吗?
【问题讨论】:
标签: c# methods overloading