Use Is and As to convert a class to its implenented Interface : Is « Operator « VB.Net Tutorial






Imports System

     Interface Printable
         Sub Read( )
         Sub Write(ByVal obj As Object)

         Property Status( ) As Integer
     End Interface 

     Interface Zippable
         Sub Zip( )
         Sub Unzip( )
     End Interface 

     Public Class Document 
     Implements Printable

         Public Sub New(ByVal s As String)
             Console.WriteLine("Creating document with: {0}", s)
         End Sub 

         Public Sub Read( ) Implements Printable.Read
             Console.WriteLine("Implementing the Read Method for Printable")
         End Sub 

         Public Sub Write(ByVal o As Object) Implements Printable.Write
             Console.WriteLine("Implementing the Write Method for Printable")
         End Sub 'Write

         Public Property Status( ) As Integer Implements Printable.Status
             Get
                 Return Status
             End Get
             Set(ByVal Value As Integer)
                 Status = Value
             End Set
         End Property
         Private myStatus As Integer = 0
     End Class 'Document

     Class Tester
         Public Sub Run( )
         End Sub 'Run

         Shared Sub Main( )
             Dim doc As New Document("Test Document")

             If TypeOf doc Is Printable Then
                 Dim isDoc As Printable = doc
                 isDoc.Read( )
             Else
                 Console.WriteLine("Could not cast to Printable")
             End If

             If TypeOf doc Is Zippable Then
                 Dim icDoc As Zippable = doc
                 icDoc.Zip( )
             Else
                 Console.WriteLine("Could not cast to Zippable")
             End If
         End Sub 'Main

     End Class
Creating document with: Test Document
Implementing the Read Method for Printable
Could not cast to Zippable








3.9.Is
3.9.1.Demonstrate 'is a' relationship
3.9.2.Use Is and As to convert a class to its implenented Interface