Ich muss eine Referenz einer Funktion an eine andere Funktion in VB.NET übergeben. Wie kann das gemacht werden?
Meine Funktion muss AddHandler intern verwenden, wofür ich eine Handler-Funktion übergeben muss. Mein Code unten funktioniert offensichtlich nicht, aber es vermittelt die Idee von dem, was ich brauche.
%Vor%Gibt es einen anderen Weg, dies zu tun? Der AddHandler muss irgendwie auf einen übergebenen Parameter in einer Funktion gesetzt werden ...
Ein Funktionsdelegat ist genau das, was Sie dazu brauchen. Zuerst müssen Sie den Delegaten irgendwo in der Klasse definieren. Ändern Sie die Signatur natürlich auf Ihre Veranstaltung.
%Vor%Ihre Funktion übernimmt den Delegaten als Argument.
%Vor%Und so nennen Sie die Funktion:
%Vor% Ihr zweites Argument in der Funktion sollte vom Typ EventHandler
sein, und Ihre Funktion würde dann wie folgt aussehen:
Jetzt benötigen Sie eine Methode, um diese Klicks zu verarbeiten:
%Vor%Und Sie können diese beiden Methoden jetzt mit etwas wie:
konsumieren %Vor% Zunächst müssen Event-Handler Subs haben. Zweitens kann AddressOf
nicht als Typ verwendet werden.
Wenn die Unterklasse in derselben Klasse ist, verwenden Sie einfach den Unternamen. Wenn es sich in einer anderen Klasse / Datei befindet, müssen Sie möglicherweise die Unteröffentlichkeit veröffentlichen und / oder als Mitglied der anderen Klasse qualifizieren. Die Subs für die AddHandler-Klausel müssen grundsätzlich dem Muster folgen:
Wenn Sie verschiedene Routinen basierend auf dem Namen des Menüelements benötigen, können Sie einen Handler verwenden und die entsprechende Routine basierend auf dem Namen des Elements aufrufen, das das Ereignis auslöst.
Tags und Links .net vb.net addhandler addressof