为了账号安全,请及时绑定邮箱和手机立即绑定

具有通用参数的类型和动作的字典

具有通用参数的类型和动作的字典

C#
慕神8447489 2021-04-10 14:10:32
我正在尝试使用MessagePack获得一个简单的消息传递服务。该服务应保留一个dictionary<type, Action<T>>,以便查找如何“处理”特定消息。基本上,我有:    private Dictionary<Type, Action<IMessage>> subActions;    public void Subscribe<TMessage>(Action<TMessage> action) where TMessage : IMessage    {        subActions.Add(typeof(TMessage), action);    }我得到:Argument 2: cannot convert from 'System.Action<TMessage>' to 'System.Action<GameServer.Messages.IMessage>'如果不清楚的话;消息“到达”为byte[]包含“类型代码”。从“类型代码”我得到的Type,并且应该然后能够查找适当Action服用。该Action应,显然,以TMessage作为参数。关于为何编译器给我这个错误,我似乎不能得出合理的结论,尽管我怀疑它与Dictionary不在同一个上下文中有关TMessage。
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 162 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信