|
Dit artikel is gepubliceerd op zondag 31 juli 2011 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.
CType kan naast het casten in tegenstelling tot DirectCast ook gebruikt worden voor het converteren naar een ander datatype. Visual Basic 2010 Broncode Class PersonEnd ClassClass Student : Inherits PersonEnd ClassClass Teacher : Inherits PersonEnd ClassClass 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 SubEnd ClassDownload Visual Basic 2010 Broncode Download Visual C# Sourcecode
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 2010 Broncode Class Counter Public Sub New() End Sub Public Sub New( ByVal value As Integer) m_Value = value End Sub Private m_Value As Integer Public ReadOnly Property Value() As Integer Get Value = m_Value End Get End Property Public Sub Raise() m_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 OperatorEnd ClassClass 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 SubEnd ClassDownload Visual Basic 2010 Broncode Download Visual C# Sourcecode
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 zondag 31 juli 2011 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.
|