2012-07-13 113 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;