VB.Net DLL事件,C#Handler

时间:2014-01-06 11:26:05

标签: c# vb.net events

我有一个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 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

VB使用Event关键字。

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

像在其他任何活动中一样在C#中订阅它。