Shared Sub Main() Dim doc As New Document("Test Document")
' only cast if it is safe If TypeOf doc Is IStorable Then Dim isDoc As IStorable = doc
isDoc.Read( )
Else
Console.WriteLine("Could not cast to IStorable") End If
' this test will fail If TypeOf doc Is ICompressible Then Dim icDoc As ICompressible = doc
icDoc.Compress( )
Else
Console.WriteLine("Could not cast to ICompressible") End If End Sub End Class
Interface IStorable Sub Read( ) Sub Write(ByVal obj As Object)
Property Status( ) As Integer End Interface
Interface ICompressible Sub Compress( ) Sub Decompress( ) End Interface
Public Class Document
Implements IStorable
Public Sub New(ByVal s As String)
Console.WriteLine("Creating document with: {0}", s) End Sub
Public Sub Read( ) Implements IStorable.Read
Console.WriteLine("Implementing the Read Method for IStorable") End Sub
Public Sub Write(ByVal o As Object) Implements IStorable.Write
Console.WriteLine( _
"Implementing the Write Method for IStorable") End Sub
Public Property Status( ) As Integer Implements IStorable.Status
Get
Return Status End Get
Set(ByVal Value As Integer)
Status = Value End Set End Property