Multicast Delegate : Delegate « Language Basics « VB.Net

Multicast Delegate

Multicast Delegate
Imports System

Public Class MainClass
    Shared Sub Main(  )
             Dim Writer, Logger As _

             Dim myMulticastDelegate As MyClassWithDelegate.StringDelegate

             Writer = New MyClassWithDelegate.StringDelegate( _
                  AddressOf MyImplementingClass.WriteString)
             Logger = New MyClassWithDelegate.StringDelegate( _
                  AddressOf MyImplementingClass.LogString)

             Dim arr(  ) As MyClassWithDelegate.StringDelegate = _
                {Writer, Logger}

             Writer("String passed to Writer" & vbCrLf)

             Logger("String passed to Logger" & vbCrLf)

             Console.WriteLine(vbCrLf & "myMulticastDelegate = " + _
                "Writer and Logger")

             myMulticastDelegate = _
               DirectCast(System.Delegate.Combine(arr), _

             myMulticastDelegate("First string passed to Collector")

             Console.WriteLine(vbCrLf & _
                "myMulticastDelegate Adds Transmitter")

             Console.WriteLine(vbCrLf & "myMulticastDelegate -= Logger")

             myMulticastDelegate = _
                DirectCast(System.Delegate.Remove(myMulticastDelegate, _
                   Logger),  MyClassWithDelegate.StringDelegate)

             myMulticastDelegate("Third string passed to Collector")
    End Sub 'Main

End Class

     Public Class MyClassWithDelegate
         Public Delegate Sub StringDelegate(ByVal s As String)
     End Class

     Public Class MyImplementingClass
         Public Shared Sub WriteString(ByVal s As String)
             Console.WriteLine("Writing string {0}", s)
         End Sub

         Public Shared Sub LogString(ByVal s As String)
             Console.WriteLine("Logging string {0}", s)
         End Sub

     End Class


Related examples in the same category

1.Delegate with and without parametersDelegate with and without parameters
2.Two ways to init a DelegateTwo ways to init a Delegate
3.Use Delegate to implement custome sortUse Delegate to implement custome sort
4.Register Delegates and call themRegister Delegates and call them
5.Simple Delegate DemoSimple Delegate Demo
6.Sort DelegateSort Delegate
7.Function Delegation DemoFunction Delegation Demo
8.Function Delegate: output stringFunction Delegate: output string
9.Delegate Demo for a Simple ClassDelegate Demo for a Simple Class
10.Delegate Syntax