Freigeben über


CType-Operator (Visual Basic)

Gibt das Ergebnis der expliziten Konvertierung eines Ausdrucks in einen angegebenen Datentyp, ein Objekt, eine Struktur, eine Klasse oder eine Schnittstelle zurück.

Syntax

CType(expression, typename)

Teile

expression Ein beliebiger gültiger Ausdruck. Wenn sich der Wert außerhalb expression des zulässigen Bereichs befindet typename, löst Visual Basic eine Ausnahme aus.

typenameJeder Ausdruck, der innerhalb einer Klausel in einer Dim Anweisung zulässig ist, d. h. der Name eines beliebigen Datentyps, Objekts, einer Struktur, einer As Klasse oder einer Schnittstelle.

Bemerkungen

Tipp

Sie können auch die folgenden Funktionen verwenden, um eine Typkonvertierung auszuführen:

  • Typkonvertierungsfunktionen wie CByte, CDblund CInt die eine Konvertierung in einen bestimmten Datentyp ausführen. Weitere Informationen finden Sie unter Typkonvertierungsfunktionen.
  • DirectCast-Operator oder TryCast-Operator. Diese Operatoren erfordern, dass ein Typ von dem anderen Typ erbt oder implementiert. Sie können eine etwas bessere Leistung bieten als CType beim Konvertieren in und aus dem Object Datentyp.

CType wird inline kompiliert, was bedeutet, dass der Konvertierungscode Teil des Codes ist, der den Ausdruck auswertet. In einigen Fällen wird der Code schneller ausgeführt, da keine Prozeduren aufgerufen werden, um die Konvertierung auszuführen.

Wenn keine Konvertierung von expression zu typename (z. B. von Integer in Date) definiert ist, zeigt Visual Basic eine Fehlermeldung zur Kompilierungszeit an.

Wenn eine Konvertierung zur Laufzeit fehlschlägt, wird die entsprechende Ausnahme ausgelöst. Wenn eine Schmalungskonvertierung fehlschlägt, ist ein OverflowException Ergebnis das häufigste Ergebnis. Wenn die Konvertierung nicht definiert ist, wird ein InvalidCastException Fehler ausgelöst. Dies kann z. B. passieren, wenn expression der Typ ist Object und der Laufzeittyp keine Konvertierung hat typename.

Wenn der Datentyp von expression oder eine von Ihnen definierte Klasse oder typename Struktur ist, können Sie diese Klasse oder Struktur als Konvertierungsoperator definieren CType . Dies dient CType als überladener Operator. Wenn Sie dies tun, können Sie das Verhalten von Konvertierungen in und aus Ihrer Klasse oder Struktur steuern, einschließlich der Ausnahmen, die ausgelöst werden können.

Konvertierungsstichwörter

Ein Vergleich der Typkonvertierungsstichwörter lautet wie folgt.

Keyword Datentypen Argumentbeziehung Laufzeitfehler
CType Alle Datentypen Die Verbreiterung oder Verengungskonvertierung muss zwischen den beiden Datentypen definiert werden. Wirft InvalidCastException
DirectCast-Operator Alle Datentypen Ein Typ muss von dem anderen Typ erben oder implementieren. Wirft InvalidCastException
TryCast Nur Referenztypen Ein Typ muss von dem anderen Typ erben oder implementieren. Gibt Nothing zurück.

Überladen

Der CType Operator kann auch für eine Außerhalb des Codes definierte Klasse oder Struktur überladen werden. Wenn Ihr Code in eine solche Klasse oder Struktur konvertiert wird, stellen Sie sicher, dass Sie das Verhalten des CType Operators verstehen. Weitere Informationen finden Sie unter Operatorprozeduren.

Konvertieren dynamischer Objekte

Typkonvertierungen dynamischer Objekte werden von benutzerdefinierten dynamischen Konvertierungen ausgeführt, die die TryConvert oder BindConvert die Methoden verwenden. Wenn Sie mit dynamischen Objekten arbeiten, verwenden Sie die CTypeDynamic Methode, um das dynamische Objekt zu konvertieren.

Example

Im folgenden Beispiel wird der CType Operator verwendet, um einen Ausdruck in den Single Datentyp zu konvertieren.

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.

Siehe auch