Delegaten als Parameter in VB.NET
Vorgeschichte: ich bin mit log4net zu behandeln, alle für die Protokollierung für ein Projekt an dem ich arbeite. Eine bestimmte Methode aufgerufen werden kann, unter verschiedenen Umständen-einige, die garantieren, werden die log-Meldungen werden Fehler-und andere, die Gewähr für die log-Meldungen werden Warnungen.
So, als ein Beispiel, wie konnte ich drehen
Public Sub CheckDifference(ByVal A As Integer, ByVal B As Integer)
If (B - A) > 5 Then
log.ErrorFormat("Difference ({0}) is outside of acceptable range.", (B - A))
End If
End Sub
In etwas mehr entlang den Linien von:
Public Sub CheckDifference(ByVal A As Integer, ByVal B As Integer, "Some delegate info here")
If (B - A) > 5 Then
**delegateinfo**.Invoke("Difference ({0}) is outside of acceptable range.", (B - A))
End If
End Sub
So, dass ich es nennen könnte und pass anmelden.ErrorFormat oder log.WarnFormat als Delegierter?
Ich bin mit VB.NET mit VS 2008 und .NET 3.5 SP1. Auch ich bin ziemlich neu, um die Delegierten im Allgemeinen, so dass, wenn diese Frage sollte anders formuliert zu entfernen Unklarheiten, lasst es mich wissen.
EDIT: Auch, wie konnte ich initialisieren die Delegierten entweder die ErrorFormat oder die WarnFormat im Konstruktor der Klasse? Wäre es so einfach, wie myDelegate = log.ErrorFormat
? Ich könnte mir vorstellen, es ist mehr als das (verzeihen Sie meine Unwissenheit über das Thema -- die Delegierten sind wirklich etwas, das ich mehr darüber erfahren möchten, aber bisher haben Sie entzog sich meinem Verständnis).
- Sie können pass-Delegaten als parameter in VB.NET (und C#). Look hier für ein Beispiel.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erklären Delegierter Unterschrift:
Definieren Sie Ihre Test-Funktion:
Irgendwo in deinem code nennen Ihre Test-Funktion:
Oder
Werden Sie zunächst wollen, deklarieren Sie einen Delegaten in der Klasse/Modul-Ebene (dieser code ist aus dem Gedächtnis/nicht getestet):
Dann .. Sie werden wollen, deklarieren Sie Sie als eine Eigenschaft, um Ihre Klasse z.B.
Den Weg zum instanzieren der Stellvertretung:
Bitte verzeihen Sie die Formatierung 😛
Im Grunde aber ist, erstellen Sie den Delegaten, den Sie möchten, mit der richtigen Unterschrift, und übergeben Sie die Adresse der Methode.