2

这是我对自定义事件参数的类定义

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 下的红线表示未找到类型)。不知道这是否是正确的使用方法,任何有经验的人请分享一些想法。

谢谢

4

2 回答 2

5

我相信当你声明你的事件时,你需要给它一个使用的类型,就像你对 EventHandler 所做的那样

public event EventHandler<DeserializeEventArgs<T>> DeserializeEvent;

需要是

public event EventHandler<DeserializeEventArgs<YourType>> DeserializeEvent;
于 2012-07-13T22:22:41.480 回答
2

T是一个类型参数 - 本质上是您将要使用的实际类型的替代品。无论您想通过Deserialize事件传递什么类型的对象,您都应该将其名称放在那里。

如果您的班级被称为“数据”,那么:

public event EventHandler<DeserializeEventArgs<Data>> DeserializeEvent;
于 2012-07-13T22:22:06.440 回答