VB.NET中的C#event + = delegate {}等效

z3n*_*10n 4 c# vb.net delegates equivalent

好吧,我正在翻译一个C# into VB.NET使用开发人员融合,而API没有翻译我那部分......

owner.IsVisibleChanged += delegate
            {
                if (owner.IsVisible)
                {
                    Owner = owner;
                    Show();
                }
            };
Run Code Online (Sandbox Code Playgroud)

我知道,那个+= is for AddHandler owner.IsVisibleChanged, AdressOf (delegate??),那个部分的等价物呢?

提前致谢.

PD:我没有足够的钱购买 .NET Reflector :(而且我浪费了试验.

Kon*_*lph 6

这里有两个部分.

  1. 匿名方法.delegate在C#中粗略对应Sub于VB中的匿名者.

  2. 添加事件处理程序.+=在C#中,AddHandler在VB中.

把它放在一起:

AddHandler owner.IsVisibleChanged, _
    Sub()
        …
    End Sub
Run Code Online (Sandbox Code Playgroud)

顺便提一下,AddressOf您提到的运算符在VB中用于引用(非匿名)方法而不调用它.因此,如果您要引用现有的命名方法而不是匿名方法,则可以在此处使用它.