C#/委托不具有类型参数
问题描述:
我有两个C#文件: 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>
两种entierly不同的类型。它们不兼容。在你的情况下,EventDel
只接受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);
删除''所以它说'公共EventDel toCatchOne {get;组; }' –
2013-05-04 09:34:22