我有我繞過一個數據對象:正確使用
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