zoukankan      html  css  js  c++  java
  • 連載 VB デリゲートの利用方法

    1.デリゲートとは

      デリゲート(Delegate)とはCなどでは関数ポインタとかコールバック関数とか言われるメソッドの参照データです。 辞書では Delegate とは(権限・任務・責任などを)委任する、委譲する、委託するとあり、 ある処理の実行するタイミングを第三者の別クラスに監視させ、委託しておく。実行処理のアドレスを渡して、第三者に実行してもらうということです。

     

    2.デリゲートの使用方法

      'デリゲートの定義。 ここではデリゲートする実行メソッドのシグネーチャを決め、実装はしない。 

      '(引数、戻り値は実行メソッドの引数、戻り値に合わせる。)

      Public Delegate Sub PrintDelgate(ByVal str As String)

      'テストデリゲートクラス

      Public Class TestDelegate

          Dim innerDel As PrintDelgate

          Public Sub New(ByVal outDel As PrintDelgate)
              innerDel = outDel
          End Sub

        '実行メソッドの実行を指示(Invoke)。(何らかのイベント発生(RaiseEvent)でも良い。)
        '(引数は実行メソッドへの値)

          Public Sub innerPrint(ByVal str As String)
              printFlag("Being Delegate*****************************")
              innerDel.Invoke(str)
          End Sub 

          Private Sub printFlag(ByVal str As String)
              Console.WriteLine(str)
          End Sub

    End Class

     

    Module Module1

        Sub Main()
            'デリゲート登録
            Dim instance As New PrintDelgate(AddressOf outPrint)
            'デリゲート 引渡し    
            Dim print As New TestDelegate(instance)
            'デリゲートメソッド呼び出し        
            print.innerPrint("World")
        End Sub

        ' 引数引き渡し
        Private Sub outPrint(ByVal str As String)
            Console.WriteLine("Hello " + str)
            Console.ReadLine()
        End Sub

    End Module

    3.起動例

      Being Delegate*****************************

      Hello World

      

     

  • 相关阅读:
    sql server 2005 设置用于复制的文本类型大小 [转]
    C#模拟post提交的实现方法
    项目经理角色定位
    无线不能连接 源于Wireless Zero Configuration服务不能自动启动
    软件版本Beta,RC,Demo,Build等是什么意思呢?
    用PUSHD/POPD获得bat文件执行的路径
    Windows下在本机创建SVN服务
    phpAmin如何导入导出大数据文件?
    整理的英语短语
    [转]项目管理心得:一个项目经理的个人体会、经验总结
  • 原文地址:https://www.cnblogs.com/zhaidh/p/2384555.html
Copyright © 2011-2022 走看看