【发布时间】:2008-09-22 21:01:11
【问题描述】:
背景故事:我正在使用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 一样简单吗?我想还有更多的东西(请原谅我对这个主题的无知——代表确实是我想了解更多的东西,但到目前为止他们还没有让我理解)。
【问题讨论】:
-
您可以在 VB.NET(和 C#)中将委托作为参数传递。以here 为例。
标签: vb.net delegates lambda log4net