CType-Funktion (Visual Basic)
Gibt das Ergebnis einer expliziten Konvertierung eines Ausdrucks in einen angegebenen Datentyp, ein Objekt, eine Struktur, Klasse oder Schnittstelle zurück.
CType(expression, typename)
Teile
expression
Jeder gültige Ausdruck. Wenn der Wert von expression außerhalb des von typename definierten Bereichs liegt, wird von Visual Basic eine Ausnahme ausgelöst.typename
Ein beliebiger Ausdruck, der innerhalb einer As-Klausel in einer Dim-Anweisung zulässig ist, d. h., der Name eines beliebigen Datentyps, eines Objekts, einer Struktur, einer Klasse oder einer Schnittstelle.
Hinweise
Tipp
Sie können die folgenden Funktionen auch zum Ausführen einer Typkonvertierung verwenden:
-
Typkonvertierungsfunktionen, wie CByte, CDbl und CInt, mit denen eine Konvertierung in einen bestimmten Datentyp ausgeführt werden kann.Weitere Informationen finden Sie unter Funktionen für die Typkonvertierung (Visual Basic).
-
DirectCast-Operator (Visual Basic) oder TryCast-Operator (Visual Basic).Diese Operatoren erfordern, dass ein Typ von dem Anderen erbt oder diesen implementiert.Sie können etwas bessere Leistung beim Konvertieren in und aus dem Object-Datentyp bieten, als CType.
CType wird inline kompiliert. Das bedeutet, dass der Konvertierungscode Bestandteil des Codes für die Auswertung des Ausdrucks ist. In einigen Fällen wird der Code schneller ausgeführt, da keine Prozeduren zum Ausführen der Konvertierung aufgerufen werden.
Wenn keine Konvertierung von expression in typename (zum Beispiel von Integer in Date) definiert ist, wird von Visual Basic zur Kompilierungszeit eine Fehlermeldung angezeigt.
Falls eine Konvertierung zur Laufzeit fehlschlägt, wird die entsprechende Ausnahme ausgelöst. Ist eine einschränkende Konvertierung fehlerhaft, wird meist ein OverflowException-Fehler verursacht. Wenn die Konvertierung nicht definiert ist, wird eine InvalidCastException ausgelöst. Dies kann z. B. der Fall sein, wenn expression vom Typ Object ist und für seinen Laufzeittyp keine Konvertierung in typename definiert ist.
Handelt es sich beim Datentyp von expression oder typename um eine von Ihnen definierte Klasse oder Struktur, können Sie CType für diese Klasse oder Struktur als Konvertierungsoperator definieren. Dadurch verhält sich CType wie ein überladener Operator. Wenn Sie einen Konvertierungsoperator definieren, können Sie nicht nur das Verhalten von Konvertierungen in und aus der Klasse oder Struktur steuern, sondern auch die ausgelösten Ausnahmen bestimmen.
Überladen
Der Operator CType kann auch für eine Klasse oder Struktur überladen werden, die außerhalb des Codes definiert ist. Wenn in dem Code Konvertierungen in eine solche Klasse oder Struktur oder in umgekehrter Richtung durchführt werden, müssen Sie sicherstellen, dass Sie das Verhalten des betreffenden CType-Operators verstehen. Weitere Informationen finden Sie unter Operatorprozeduren (Visual Basic).
Konvertieren von dynamischen Objekten
Typkonvertierungen für dynamische Objekte werden durch benutzerdefinierte dynamische Konvertierungen ausgeführt, bei denen die TryConvert-Methode oder die BindConvert-Methode verwendet werden. Wenn Sie mit dynamischen Objekten arbeiten, verwenden Sie zum Konvertieren des dynamischen Objekts die CTypeDynamic-Methode.
Beispiel
In diesem Beispiel wird die CType-Funktion zum Konvertieren eines Ausdrucks in den Single-Datentyp verwendet.
Dim testNumber As Long = 1000
' The following line of code sets testNewType to 1000.0.
Dim testNewType As Single = CType(testNumber, Single)
Weitere Beispiele finden Sie unter Implizite und explizite Konvertierungen (Visual Basic).
Siehe auch
Aufgaben
Gewusst wie: Definieren eines Konvertierungsoperators (Visual Basic)
Referenz
Funktionen für die Typkonvertierung (Visual Basic)
Konvertierungsfunktionen (Visual Basic)