这是我自定义事件args的类定义
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 :(得分:5)
我相信当你宣布你的活动时,你需要给它一个类型来使用,就像你在使用EventHandler一样
public event EventHandler<DeserializeEventArgs<T>> DeserializeEvent;
需要
public event EventHandler<DeserializeEventArgs<YourType>> DeserializeEvent;
答案 1 :(得分:2)
T
是一个类型参数 - 实际上是您要使用的实际类型的替身。无论您希望在Deserialize
事件中传递什么类型的对象,都应该将其名称放在那里。
如果您的班级被称为“数据”,那么:
public event EventHandler<DeserializeEventArgs<Data>> DeserializeEvent;