Language Basics VB.Net

Imports System
Public Class MainClass
    Shared Sub Main(  )
             Dim Writer, Logger As _
                MyClassWithDelegate.StringDelegate
             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), _
                 MyClassWithDelegate.StringDelegate)
             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