2014-01-06 165 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#中订阅它,就像任何其他事件一样。