連載 VB デリゲートの利用方法

この記事では、C#におけるデリゲートの概念とその使用方法について説明します。デリゲートとは、他のクラスにメソッドの実行を委任するための参照データで、特定のメソッドの実行タイミングを制御できます。具体的なサンプルコードを通じて、デリゲートの定義から登録、実行までを紹介しています。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

  

 

转载于:https://www.cnblogs.com/zhaidh/archive/2012/03/08/2384555.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值