2011-10-04 51 views
1

我想創建一個泛型類。這個班將會有一些通用的活動。是否有可能創建通用事件處理程序類似自動生成的泛型事件

class MyClass<T> 
{ 
    public event EventArgs SomeEventClass(); 
} 

凡被仿製藥同時使用一個基類創建的事件類的類名。

我很有效地試圖在事件處理程序中返回事件,並希望它們對調用方是安全的。

+0

目前還不清楚你想要什麼......你爲什麼需要EventClass?它與泛型有什麼關係? –

回答

0

在任何情況下都不能用泛型指定名稱。它們用於指定類型

代碼生成可能是你正在尋找的。

+0

我相信OP不想要「通用」名稱,即使代碼示例可能表明這一點。 – svick

1

你想這樣的事情....

class MyClass<T> 
{ 
    public event EventHandler<EventArgs<T>> SomeEvent; 

    protected void RaiseEvent(T data) 
    { 
     var tmp = SomeEvent; 
     if(tmp != null) 
     tmp(this, new EventArgs<T>(data)); 
    } 
} 

您需要創建通用EventArgs但應該很容易。 您可以派生基類並使用特定的通用參數調用RaiseEvent方法

0

這是做你想做的嗎?

class MyClass<T> 
{ 
    public event Func<T> GenericEvent; 
} 
+0

所有事件都應遵循標準的EventHadler模​​式,以便它們與其他代碼兼容。 – svick