【问题标题】:How would I convert C# delegate function to VB.Net?如何将 C# 委托函数转换为 VB.Net?
【发布时间】:2011-10-02 20:28:11
【问题描述】:

Here 关于这段代码有一个老问题。

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

我想在 vb.net(版本 10)中使用它,但我不知道如何转换它。

【问题讨论】:

  • 你在哪个部位遇到问题?

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


【解决方案1】:

委托是一个匿名函数。正如预期的那样,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

【讨论】:

  • 我不认为 VB.net 会喜欢你留下的 ;,除非最近情况发生了变化而且我不知道 ;)
  • 它有效! (我删除了;没什么大不了的......)非常感谢
  • @Icarus,它显然不喜欢它;-)(已修复)
【解决方案2】:

我不知道如何在 VB.NET 中声明一个匿名委托,而且我懒得用谷歌搜索它,但是这样的东西应该可以工作(警告:未测试):

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多