Les délégués en tant que paramètres dans VB.NET
Histoire: je suis en utilisant log4net pour gérer tous les enregistrement pour un projet que je suis en train de travailler sur. Une méthode particulière peut être appelé, en vertu de plusieurs circonstances différentes-certains qui justifient le journal des messages d'erreurs et d'autres qui justifient le journal des messages d'avertissements.
Alors, comme un exemple, comment pourrais-je tourner
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
En quelque chose de plus le long des lignes de:
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
Pour que je puisse l'appeler et passer de journaux.ErrorFormat ou un journal.WarnFormat en tant que délégué?
Je suis en utilisant VB.NET avec VS 2008 et .NET 3.5 SP1. Aussi, je suis relativement nouveau pour les délégués en général, donc, si cette question doit être rédigé différemment de lever toute ambiguïté, laissez-moi savoir.
EDIT: Aussi, comment pourrais-je initialiser le délégué soit le ErrorFormat ou la WarnFormat dans le constructeur de la classe? Serait-il aussi facile que myDelegate = log.ErrorFormat
? J'imagine, il n'y a plus que ça (pardon pour mon ignorance sur le sujet, les délégués sont vraiment quelque chose que je veux en apprendre plus à ce sujet, mais jusqu'à présent, ils ont échappé à ma connaissance).
OriginalL'auteur jerhinesmith | 2008-09-22
Vous devez vous connecter pour publier un commentaire.
Déclarer votre délégué signature:
Définir votre fonction de Test:
Quelque part dans votre code, appelez votre fonction de Test:
Ou
OriginalL'auteur Nescio
Vous devez d'abord souhaitez déclarer un délégué à la Classe/niveau Module (tout ce code est à partir de la mémoire/pas testé):
Alors .. vous aurez envie de le déclarer comme une propriété de votre classe par exemple
La façon d'instancier le délégué est:
OriginalL'auteur torial
Vous pouvez passer délégué en tant que paramètre dans VB.NET (et C#). Regarder ici pour un exemple.
OriginalL'auteur alex
S'il vous plaît pardonnez la mise en forme 😛
En gros, créer le délégué que vous voulez, avec la bonne signature, et de passer l'adresse de la méthode.
OriginalL'auteur MagicKat