小编Mar*_*sen的帖子

方法重载C#

我是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)

c# methods overloading

4
推荐指数
1
解决办法
198
查看次数

标签 统计

c# ×1

methods ×1

overloading ×1