我有两个 C# 文件:
EventDel.cs
:public delegate void EventDel(DocdEvent event);
HBE.cs
其中包含下一个字段:public EventDel<ME> toCatchOne {get; set; }
它给了我下一个错误:
Delegate does not have type parameters.
我该如何解决?
您的委托似乎不是通用的,请在 HBE.cs 中尝试此操作:
public EventDel toCatchOne {get; set; }
或者 EventDel.cs 里面的这个:
public delegate void EventDel<HBE>(DocdEvent event);
EventDel
并且EventDel<T>
是两种完全不同的类型。它们不兼容。在您的情况下EventDel
,只接受一个 type 参数DocdEvent
。并且类型EventDel<ME>
只接受类型的参数ME
(无论是什么)。
要使您的代码正常工作,请尝试:
public EventDel<ME> toCatchOne {get; set; }
必须转换为:
public EventDel toCatchOne {get; set; }
或修改您的第一个委托:
public delegate void EventDel(DocdEvent event);
进入:
public delegate void EventDel(ME event);
在最后一种情况下,您仍然使用两种不同类型的委托,但如果您想将一个委托转换为另一种委托,请使用构造函数:
EventDel d1 = ...;
EventDel<ME> d2 = new EventDel<ME>(d1);