C#/委托不具有类型参数

问题描述:

我有两个C#文件: C#/委托不具有类型参数

  1. EventDel.cs

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

    public EventDel<ME> toCatchOne {get; set; } 
    

它给我的下一个错误:

Delegate does not have type parameters. 

我该如何解决它?

+2

删除''所以它说'公共EventDel toCatchOne {get;组; }' – 2013-05-04 09:34:22

你的委托不似乎是通用的,试试这个里面HBE.cs:

public EventDel toCatchOne {get; set; } 

或者这里面EventDel.cs:

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

EventDelEventDel<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);