加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

委托作为VB.NET中的参数

发布时间:2020-12-17 00:20:17 所属栏目:大数据 来源:网络整理
导读:背景故事:我正在使用 log4net处理我正在进行的项目的所有日志记录.可以在几种不同的情况下调用一种特定的方法 – 一些保证日志消息是错误,另一些保证日志消息是警告. 所以,作为一个例子,我怎么能转 Public Sub CheckDifference(ByVal A As Integer,ByVal B
背景故事:我正在使用 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一样简单吗?我认为还有更多的东西(原谅我对这个问题的无知 – 代表们真的是我想要了解更多的东西,但到目前为止他们已经没有理解我的理解).

声明您的代理签名:
Public Delegate Sub Format(ByVal value As String)

定义您的测试功能:

Public Sub CheckDifference(ByVal A As Integer,_
                           ByVal B As Integer,_
                           ByVal format As Format)
    If (B - A) > 5 Then
        format.Invoke(String.Format( _
        "Difference ({0}) is outside of acceptable range.",(B - A)))
    End If
End Sub

代码中的某处调用Test函数:

CheckDifference(Foo,Bar,AddressOf log.WriteWarn)

要么

CheckDifference(Foo,AddressOf log.WriteError)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读