Предыстория: я использую 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?
Я использую VB.NET с VS 2008 и .NET 3.5 SP1. Кроме того, я довольно новичок в отношении делегатов в целом, поэтому, если этот вопрос следует сформулировать иначе, чтобы устранить двусмысленность, дайте мне знать.
РЕДАКТИРОВАТЬ: Кроме того, как я мог инициализировать делегат либо ErrorFormat или WarnFormat в конструкторе класса? Будет ли это так же просто, как myDelegate = log.ErrorFormat
? Я полагаю, что в этом есть нечто большее (извините за мое невежество по этому вопросу - я действительно хочу узнать больше о делегатах, но пока они ускользали от моего понимания).