C#/ Delegate没有类型参数

时间:2013-05-04 09:31:58

标签: c# delegates

我有两个C#文件:

  1. EventDel.cs

    public delegate void EventDel(DocdEvent event);
    
  2. HBE.cs包含下一个字段:

    public  EventDel<ME> toCatchOne {get; set; }
    
  3. 它给了我下一个错误:

    Delegate does not have type parameters.
    

    我该如何解决?

2 个答案:

答案 0 :(得分:1)

您的委托似乎不是通用的,请在HBE.cs中尝试:

public  EventDel toCatchOne {get; set; }

或者在EventDel.cs中:

public delegate void EventDel<HBE>(DocdEvent event);

答案 1 :(得分:0)

EventDelEventDel<T>是两种截然不同的类型。它们不兼容。在您的情况下,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);