| |
'Is' and 'As' operator for a Class |
|
|
Imports System
Public Class MainClass
Shared Sub Main(ByVal args As String())
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 'IStorable
' here's the new interface
Interface ICompressible
Sub Compress( )
Sub Decompress( )
End Interface 'ICompressible
' Document implements both interfaces
Public Class Document
Implements IStorable
' the document constructor
Public Sub New(ByVal s As String)
Console.WriteLine("Creating document with: {0}", s)
End Sub 'New
' implement IStorable
Public Sub Read( ) Implements IStorable.Read
Console.WriteLine("Implementing the Read Method for IStorable")
End Sub 'Read
Public Sub Write(ByVal o As Object) Implements IStorable.Write
Console.WriteLine( _
"Implementing the Write Method for IStorable")
End Sub 'Write
Public Property Status( ) As Integer Implements IStorable.Status
Get
Return Status
End Get
Set(ByVal Value As Integer)
Status = Value
End Set
End Property
' hold the data for IStorable's Status property
Private myStatus As Integer = 0
End Class 'Document
|
|
|
Related examples in the same category |
|