我如何将C#委托函数转换为VB.Net?

时间:2011-10-02 20:28:11

标签: c# vb.net c#-to-vb.net

Here 这个代码有一个老问题。

xmpp.OnLogin += delegate(object o) 
                { 
                    xmpp.Send(
                        new Message(
                            new Jid(JID_RECEIVER),
                            MessageType.chat, 
                            "Hello, how are you?"
                        )
                    );
                };

我想在vb.net(版本10)中使用它,但我无法弄清楚如何转换它。

2 个答案:

答案 0 :(得分:7)

委托是一个匿名函数。正如预期的那样,VB .NET的语法略有不同。如果没有VB编译器,我会说你需要类似的东西:

AddHandler xmpp.OnLogin,
    Sub(o As Object)
        xmpp.Send(
                    new Message(
                        new Jid(JID_RECEIVER),
                        MessageType.chat, 
                        "Hello, how are you?"
                    )
    End Sub

答案 1 :(得分:6)

我不知道如何在VB.NET中声明一个匿名委托,而且我对Google太懒了,但这样的事情应该有效(警告:未经测试):

AddHandler xmpp.OnLogin, AddressOf Me.HandleSendMessage

Private Sub HandleSendMessage(ByVal o As Object)
xmpp.Send( new Message(
               new Jid(JID_RECEIVER),
                            MessageType.chat, 
                            "Hello, how are you?"
                        )
                    )
End Sub