为什么这段代码不能编译:
public class FakeESBSingleMessage<T> : IBusEnabledClass
{
private Action<T> SubscribedAction { get; set; }
#region IBusEnabledClass
public void Publish<T>(T message)
{
SubscribedAction(message);
}
public void Subscribe<T>(string ID, Action<T> action)
{
SubscribedAction = action;
}
#endregion
}
它给出以下错误:
错误 37 参数 1:无法从 'T [..FakeESBSingleMessage.cs(8)]' 转换为 'T' ..FakeESBSingleMessage.cs 16 30
错误 39 无法将类型 'System.Action [mscorlib.dll]' 隐式转换为' System.Action [mscorlib.dll]' ..FakeESBSingleMessage.cs 21 32
错误 36 委托 'System.Action' 有一些无效参数 ..\FakeESBSingleMessage.cs 16 13
我正在尝试创建一个用于测试的假 ESB 组件,它保存传递给订阅的委托并在调用发布时调用它。