2011-10-02 5 views
7

Here c'è una vecchia domanda su questo codice.Come convertire la funzione di delegato C# in VB.Net?

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

voglio usarlo in vb.net (versione 10), ma non riuscivo a capire come convertire esso.

+1

Con quale parte hai problemi? – driis

risposta

7

Il delegato è una funzione anonima. La sintassi è leggermente diversa per VB .NET, come previsto. Senza avere il compilatore VB a portata di mano, direi avete bisogno di qualcosa di simile:

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

Non credo che a VB.net piacerà il ';' te ne sei andato a meno che le cose non siano cambiate di recente e non lo sapessi;) – Icarus

+0

funziona! (ho rimosso il, nessun grosso problema ...) Grazie mille – Ezi

+0

@Icarus, non mi piace ovviamente ;-) (risolto) – driis

6

Non so come dichiarare un delegato anonimo in VB.NET e io sono troppo pigro per Google, ma qualcosa come questo dovrebbe funzionare (attenzione: non testato):

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