2014-01-06 163 views
0

我有一個VB.NET DLL(由別人編寫),我要求它發佈並引發一個事件,通常會由C#處理。VB.Net DLL事件,C#處理程序

如果DLL是C#那麼這將是簡單的,

(client) 
myDLL.OnClick += doClick 

(Dll) 
if (OnClick != null) OnClick(.... 

i.e. 2 lines of code 

,但也許這是我在VB.NET的挫折,但我無法找到如何做一個簡單的例子。

有人可以展示/解釋如何在VB.NET中定義和引發事件,這可以在C#中處理嗎?

感謝

MM

回答

2

我剛剛測試了這一點,它正是因爲它通常是一樣的 - 提高在VB.Net事件(像通常那樣)

Public Class Class1 
    Public Event TestEvent() 

    Public Sub RaiseTestEvent() 
     RaiseEvent TestEvent() 
    End Sub 
End Class 

然後引用VB.Net程序集,並在C#中消耗事件(與平常一樣)

var class1 = new ClassLibrary1.Class1(); 
class1.TestEvent +=() => Console.WriteLine("Test Event"); 
class1.RaiseTestEvent(); 

請參閱Raising Events and Responding to Events

0

VB使用Event關鍵字。

Public Event SomethingChanged (byval sender as object, e as eventargs) 

在C#中訂閱它,就像任何其他事件一樣。