2012-07-13 68 views
2

這裏是一個自定義的事件參數C#泛型類型事件參數

using System; 

public class DeserializeEventArgs<T> : EventArgs 
{ 
    public DeserializeEventArgs(T deserializeResult) 
    { 
     this.DeserializeResult = deserializeResult; 
    } 

    public T DeserializeResult 
    { 
     get; 
     private set; 
    } 
} 

我的類定義,我想,我想火這個事件

public event EventHandler<DeserializeEventArgs<T>> DeserializeEvent; 

做到這一點的代碼,它將不會編譯(T下的紅線表示找不到類型)。不知道這是否是正確的使用方式,任何人都有經驗,請分享一些想法。

謝謝

+0

我相信當你宣佈你的活動,你需要給它一個類型來使用,就像你用做EventHandler 2012-07-13 22:21:29

+0

正如Stefan所說的,類似於'公共事件EventHandler > DeserializeEvent;' – 2012-07-13 22:22:16

回答

5

我相信當你宣佈你的活動,你需要給它一個類型來使用,就像你與事件處理程序做

public event EventHandler<DeserializeEventArgs<T>> DeserializeEvent; 

必須

public event EventHandler<DeserializeEventArgs<YourType>> DeserializeEvent; 
2

T是一個類型參數 - 基本上是一個替身,你要使用的實際類型。無論您想要通過您的Deserialize事件傳遞什麼類型的對象,都應該將其名稱放在那裏。

如果你的類被稱爲「數據」,則:

public event EventHandler<DeserializeEventArgs<Data>> DeserializeEvent;