Imports System
Public Class MainClass
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
Private myStatus As Integer = 0
End Class