I have a data object which I pass around :
public class TimedResult<T>
{
public ResultRequest Request { get; set; }
public T Data { get; set; }
public TimeSpan TimeTaken { get; set; }
}
In my Manager class I have some work done which raises an event :
public void Execute(ResultRequest request)
{
var result = new TimedResult<DataTable>();
// fill data object here
OnResult(result);
}
I have made the OnResult
method generic :
protected virtual void OnResult<T>(TimedResult<T> result)
{
if (Result != null)
Result(this, result);
}
But how do I make the event declaration generic?
public event EventHandler<TimedResult<T>> Result; // red line under T
How should I be doing this?