Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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,CDblundCIntdie 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
CTypebeim Konvertieren in und aus demObjectDatentyp.
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.