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