• 您的位置我爱Aspx >> VB.Net >> Visual Basic 6/VBScript 與Visual Basic.NET 的比較(下)
  • Visual Basic 6/VBScript 與Visual Basic.NET 的比較(下)

  • 作者:aspxer  来源:internet  日期:2007-5-20 14:01:43  关键字:.net
  • 執行結果如下
    Delegate
    Delegates 的行為像一個 type-safe,物件導向式函數指標(object-oriented function pointer)。利用 delegate 傳遞用 VB 的 addressof 運算子取得 class 副函數的指標給其他的 VB class 副函數。通常會利用 Delegate 來做事件處理函數,也就是當事件發生時要自動執行的函數。 每一個 delegate class 定義一個建構子,使用時會傳入一個物件方法的指標當作是參數。參數的格式如下
    AddressOf [.]<方法名稱>

    在編譯時期, 必須是一個 class 或是一個介面(interface),並且有著一個符合 delegate class 所宣告的方法格式的方法。

    這個方法可以是共享的(class)方法或是 instance 方法。 要觸發 delegate class 的 instance 內的方法必須要呼叫內建的 Invoke 方法,整個程式碼範例如下

    Imports System Namespace TestDelegate Public Delegate Sub EventHandler(ByVal strText As String) Class EventTake Sub GetEvent(ByVal strIn As String) console.WriteLine("Delegate 事件 " & strIn) End Sub End Class Class EventRaise Sub UseInvoke() Dim c As New EventTake() Dim DelSub As EventHandler delsub = New EventHandler(AddressOf c.getevent) delsub.Invoke("一些狀況") End Sub End Class Module Module1 Shared Sub Main() Dim c2 As New EventRaise() c2.UseInvoke() End Sub End Module End Namespace
    執行結果如下
    我对这篇文章有话说?
  • 广告位招租,广告代号:content_468_15
  • 上一篇:VB.NET中的类
    下一篇:Visual Basic 6/VBScript 與Visual Basic.NET 的比較(中)