2013-05-04 68 views
0

我有兩個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

回答

1

你的委託不似乎是通用的,試試這個裏面HBE.cs:

public EventDel toCatchOne {get; set; } 

或者這裏面EventDel.cs:

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

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