'Is' and 'As' operator for a Class : As « Language Basics « VB.Net






'Is' and 'As' operator for a Class

'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

1.AS, IS and castAS, IS and cast