4
我試圖保存一個對象在一個通用的EventArgs類,但因爲EventHandler有一個接口,我很難完成這一點。任何方式來得到這樣的工作?通用事件參數界面
我EventArgs類:
public class PositionChangedEventArgs<T>
{
public PositionChangedEventArgs(byte position, T deviceArgs)
{
Position = position;
DeviceArgs = deviceArgs;
}
public byte Position { get; private set; }
public T DeviceArgs { get; private set; }
}
接口使用:
public interface IMoveable
{
event EventHandler<PositionChangedEventArgs<T>> PositionChanged;
}
實例類用法:
public class SomeDevice : IMoveable
{
public event EventHandler<PositionChangedEventArgs<DeviceSpecificEventMessageArgs>> PositionChanged; //Compiler doesn't like this
}
此。你有接口定義了一個具有泛型參數的事件,當實際實現具體的事件時無法定義該參數。如果您將整個接口設置爲T的通用接口,則可以通過聲明您正在實現事件參數類型的整個接口來關閉泛型。 – KeithS 2011-02-22 16:40:25