我有我绕过一个数据对象:正确使用
public class TimedResult<T>
{
public ResultRequest Request { get; set; }
public T Data { get; set; }
public TimeSpan TimeTaken { get; set; }
}
在我Manager类我有一些工作做这引起了一个事件:
public void Execute(ResultRequest request)
{
var result = new TimedResult<DataTable>();
// fill data object here
OnResult(result);
}
我有取得了OnResult
方法通用:
protected virtual void OnResult<T>(TimedResult<T> result)
{
if (Result != null)
Result(this, result);
}
但我怎么做事件声明通用?
public event EventHandler<TimedResult<T>> Result; // red line under T
我应该怎样做呢?
'T'从哪里来?它应该是班级定义的一部分'class Manager' –
2014-10-03 10:23:38
@lc。好的问题,我对泛型不太熟悉,我想我要做的就是能够使用相同的'OnResult'方法和事件返回'TimedResult'以及'TimedResult '。 –
sprocket12
2014-10-03 10:25:40
@Muhammad然后你最好的选择就是使用'object',即'public event EventHandler> Result;'; p –
2014-10-03 10:29:38