2010-03-30 12 views
8

Ich bin ein VB-Programmierer, der meinen Weg in C# geht. Ich habe gelernt, Ereignisse in Vb zu erstellen und zu erhöhen und stelle fest, dass es nicht in C# genauso gemacht wird. Ist jemand auf einen Artikel gestoßen, der mir hilft zu verstehen, wie man Ereignisse in C# macht und vielleicht erklärt, warum es in VB anders ist?Was ist der Unterschied zwischen Ereignissen in VB und C#?

Danke

+0

Diese Frage erläutert den Unterschied zwischen "Handles" in VB.Net und C# Event-Syntax http://StackOverflow.com/Questions/794332/Migrating-Handles-from-Vb-Netz-to-c – MarkJ

+0

Vielen Dank MarkJ wirklich zu schätzen Ihre Hilfe –

Antwort

0

Der Unterschied ist vor allem syntaktische.

Siehe this handliche Referenz über die Unterschiede.

Der Event-Handler in VB.NET wird mit dem Schlüssel Handling deklariert, der an die Unterschrift des Event-Handlers angehängt wird. In C# müssen Sie es mit += registrieren.

In VB.NET rufen Sie das Ereignis mit RaiseEvent auf, in C# rufen Sie den Delegaten direkt auf.

+0

Vielen Dank für Ihre Hilfe Oded –

0

aus Reading:

http://msdn.microsoft.com/en-us/library/aa645739(VS.71).aspx

Ein Ereignis in C# ist eine Möglichkeit für eine Klasse zu Benachrichtigungen an Kunden von bieten diese Klasse, wenn einige interessante Sache zu einem Objekt geschieht. Die am häufigsten verwendete Anwendung für Ereignisse ist in grafische Benutzeroberflächen; In der Regel haben die Klassen, die Steuerelemente in der Schnittstelle darstellen, Ereignisse, die gemeldet werden, wenn der Benutzer etwas an das Steuerelement (zum Beispiel klicken Sie auf eine Schaltfläche).

Ereignisse müssen jedoch nicht nur für grafische Schnittstellen verwendet werden. Ereignisse bieten eine allgemein nützliche Möglichkeit für Objekte, um Statusänderungen zu signalisieren, dass für Clients dieses Objekts nützlich sein kann. Ereignisse sind ein wichtiger Baustein zum Erstellen von Klassen , die in einer großen Anzahl verschiedener Programme wiederverwendet werden können.

Siehe den Artikel für den Rest.

0

Eine gute schnelle allgemeine Referenz für einige wichtige Unterschiede in der Syntax finden Sie here. Suchen Sie nach "Ereignissen", um zu diesem Abschnitt zu gelangen.

Die wichtigsten Unterschiede ist, dass VB Sie erfordert einige Schlüsselwörter anstatt Addition/Subtraktion zu verwenden, um Ereignisse zu verkabeln, sondern gibt Ihnen ein Griffe Schlüsselwort automatisch eine Routine zu einem Ereignis verbinden. Und wenn Sie einen Delegaten übergeben, müssen Sie ein sinnloses AddressOf-Schlüsselwort verwenden. (Sorry für die Redaktion, aber ich denke, dass dieses Stichwort mehr Verwirrung verursacht, als es spart!)

+0

Vielen Dank für Ihren Kommentar Patrick –

+0

@M kein Problem. war es . . . eine Aufwertung wert? :) –

1

Der Hauptunterschied ist die Syntax, die verwendet wird. Darunter verwenden sie genau die gleichen Mechanismen innerhalb der CLR.

Allerdings VB.NET bietet spezielle Syntax über WithEvents und Handles, so dass Sie tun: #

Dim WithEvents button1 As Button 

Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyButton.Click 
    ' Handle button click 
End Sub 

C bietet keine equivelent - alle Ereignisse müssen explizit über event += abonniert werden, die eher wie AddHandler Aussage des VB.NET ist.

+0

Danke für Ihre Hilfe Reed –

Verwandte Themen