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 in C # nicht 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.
Danke
Der Hauptunterschied besteht in der verwendeten Syntax. Darunter verwenden sie genau die gleichen Mechanismen innerhalb der CLR.
VB.NET bietet jedoch eine spezielle Syntax über WithEvents
und Handles
, so dass Sie Folgendes tun können:
C # bietet kein Equivalent - alle Ereignisse müssen explizit über event +=
subskribiert werden, was eher der AddHandler
-Anweisung von VB.NET entspricht.
Der Unterschied ist meist syntaktisch.
Siehe diese praktische Referenz zu den Unterschieden.
Der Event-Handler in VB.NET wird mit dem Schlüsselwort Handling
deklariert, das an die Signatur 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.
Lesen von:
Ein Ereignis in C # ist eine Möglichkeit für eine Klasse Bereitstellung von Benachrichtigungen an Kunden von diese Klasse als etwas Interessantes passiert mit einem Objekt. Am meisten vertrauter Gebrauch für Ereignisse ist in grafische Benutzeroberflächen; typischerweise, die Klassen, die Steuerelemente darstellen die Schnittstelle hat Ereignisse, die sind benachrichtigt, wenn der Benutzer etwas unternimmt an das Steuerelement (klicken Sie beispielsweise auf a Knopf).
Ereignisse müssen jedoch nicht nur verwendet werden für grafische Benutzeroberflächen. Veranstaltungen bieten eine allgemein nützliche Möglichkeit für Objekte, die den Status signalisieren, ändern das kann für Kunden von Nutzen sein Objekt. Ereignisse sind wichtig Baustein zum Erstellen von Klassen das kann in einer großen Anzahl wiederverwendet werden von verschiedenen Programmen.
Siehe den Artikel für den Rest.
Eine gute, schnelle allgemeine Referenz für einige wichtige Unterschiede in der Syntax finden Sie hier . Suchen Sie nach "Ereignissen", um zu diesem Abschnitt zu gelangen.
Die Hauptunterschiede bestehen darin, dass Sie in VB nur einige Schlüsselwörter anstelle von Addition / Subtraktion verwenden müssen, um Ereignisse zu verkabeln, aber Sie ein handles Schlüsselwort erhalten, das automatisch eine Routine an ein Ereignis bindet. Und wenn Sie einen Delegaten übergeben, müssen Sie ein sinnloses AddressOf-Schlüsselwort verwenden. (Sorry für das Editorial, aber ich denke, dass dieses Keyword mehr Verwirrung verursacht als es spart!)