バックストーリー: 現在取り組んでいるプロジェクトのすべてのロギングを処理するためにlog4netを使用しています。ある特定のメソッドは、いくつかの異なる状況下で呼び出すことができます。ログ メッセージがエラーであることを保証するものもあれば、ログ メッセージが警告であることを保証するものもあります。
例として
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
次の行に沿って、さらに何かに:
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
それを呼び出して、log.ErrorFormat または log.WarnFormat のいずれかをデリゲートとして渡すことができるようにするには?
VS 2008 および .NET 3.5 SP1 で VB.NET を使用しています。また、私は一般的にデリゲートにはかなり慣れていないので、あいまいさを取り除くためにこの質問を別の言葉で表現する必要がある場合は、お知らせください。
編集: また、クラス コンストラクターでデリゲートを ErrorFormat または WarnFormat に初期化するにはどうすればよいですか? それは簡単myDelegate = log.ErrorFormat
ですか?それ以上のことがあると思います (この件に関する私の無知を許してください - デリゲートは本当に私がもっと学びたいものですが、これまでのところ私の理解を逃れています)。