Visual Basic 2012 Voorbeelden
   

visual basic 2012 broncode voorbeelden

Blijf op de hoogte van de recente aanpassingen op vbvoorbeelden!

Microsoft Visual Studio 2012Microsoft Developers Network - Visual BasicMicrosoft .NET Framework

14.9. Conversie en Casting - CType

Print Email Deel op Twitter Deel op Facebook

Dit artikel is gepubliceerd op maandag 15 oktober 2012 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.

Functie CType kan naast het casten in tegenstelling tot DirectCast ook gebruikt worden voor het converteren naar een ander datatype.
Visual Basic 2012 Broncode - Codevoorbeeld 387
Class Person
End Class
Class Student : Inherits Person
End Class
Class Teacher : Inherits Person
End Class
Class Example1
    Public Shared Sub Main()
        Dim person1 As Person = New Student With {.Name = "John"}
        Dim student1 As Student = CType(person1, Student)
        Console.WriteLine("Student : " & student1.Name)
        '
        Dim value1 As Long = 123
        Dim value2 As Integer = CType(value1, Integer)
        Console.WriteLine(value2)
        '
        Console.ReadLine()
    End Sub
End Class
Console Application Output
Student : John
123
Indien je datatype een "operator procedure" CType heeft, kan je specifiëren hoe de CType functie een instantie van je datatype naar een ander datatype kan omzetten.
Visual Basic 2012 Broncode - Codevoorbeeld 388
Class Counter
    Public Sub New()
    End Sub
    Public Sub New(ByVal value As Integer)
        _Value = value
    End Sub
    Private _Value As Integer
    Public ReadOnly Property Value() As Integer
        Get
            Value = _Value
        End Get
    End Property
    Public Sub Raise()
        _Value += 1
    End Sub
    Public Shared Widening Operator CType(ByVal counter As Counter) As Integer
        Return counter.Value
    End Operator
    Public Shared Widening Operator CType(ByVal value As Integer) As Counter
        Return New Counter(value)
    End Operator
    Public Shared Widening Operator CType(ByVal counter As Counter) As Long
        Return counter.Value
    End Operator
    Public Shared Narrowing Operator CType(ByVal value As Long) As Counter
        Return New Counter(System.Convert.ToInt32(value))
    End Operator
End Class
Class Example2
    Public Shared Sub Main()
        Dim value1 As Integer = 5
        Dim counter1 As Counter = CType(value1, Counter)
        Console.WriteLine(counter1.Value)
        '
        Dim counter2 As New Counter(10)
        Dim value2 As Integer = CType(counter2, Integer)
        Console.WriteLine(value2)
        '
        Console.ReadLine()
    End Sub
End Class
Console Application Output
5
10
Het is hierbij mogelijk om bijvoorbeeld bij de Narrowing operator zelf uit te kiezen welke excepties je zou opgooien indien iets fout loopt met de omzetting.

Zie het topic over operator overloading voor meer informatie over operator procedures.

Dit artikel is gepubliceerd op maandag 15 oktober 2012 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.