Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Retourneert het resultaat van het expliciet converteren van een expressie naar een opgegeven gegevenstype, object, structuur, klasse of interface.
Syntaxis
CType(expression, typename)
Delen
expression Elke geldige expressie. Als de waarde expression buiten het toegestane bereik typenamevalt, genereert Visual Basic een uitzondering.
typename Elke expressie die juridisch is binnen een As component in een Dim instructie, dat wil zeggen de naam van elk gegevenstype, object, structuur, klasse of interface.
Opmerkingen
Aanbeveling
U kunt ook de volgende functies gebruiken om een typeconversie uit te voeren:
- Typeconversiefuncties zoals
CByte,CDblenCIntdie een conversie naar een specifiek gegevenstype uitvoeren. Zie Typeconversiefuncties voor meer informatie. -
DirectCast-operator of TryCast-operator. Voor deze operators is vereist dat één type het andere type over neemt of implementeert. Ze kunnen iets betere prestaties bieden dan
CTypebij het converteren naar en van hetObjectgegevenstype.
CType wordt inline gecompileerd, wat betekent dat de conversiecode deel uitmaakt van de code die de expressie evalueert. In sommige gevallen wordt de code sneller uitgevoerd omdat er geen procedures worden aangeroepen om de conversie uit te voeren.
Als er geen conversie is gedefinieerd van expression naar typename (bijvoorbeeld van Integer naar Date), wordt in Visual Basic een foutbericht weergegeven waarin een compilatietijd wordt weergegeven.
Als er tijdens runtime een conversie mislukt, wordt de juiste uitzondering gegenereerd. Als een narrowing conversie mislukt, is dit OverflowException het meest voorkomende resultaat. Als de conversie niet is gedefinieerd, treedt er een InvalidCastException fout op. Dit kan bijvoorbeeld gebeuren als expression het type Object is en het runtimetype geen conversie heeft naar typename.
Als het gegevenstype van expression of typename een klasse of structuur is die u hebt gedefinieerd, kunt u die klasse of structuur definiëren CType als conversieoperator. Dit zorgt ervoor CType dat het fungeert als een overbelaste operator. Als u dit doet, kunt u het gedrag van conversies naar en van uw klasse of structuur beheren, inclusief de uitzonderingen die kunnen worden gegenereerd.
Conversietrefwoorden
Een vergelijking van de trefwoorden voor typeconversie is als volgt.
| Keyword | Gegevenstypen | Argumentrelatie | Runtimefout |
|---|---|---|---|
CType |
Alle gegevenstypen | Verbreking of narrowing-conversie moet worden gedefinieerd tussen de twee gegevenstypen | Gooit InvalidCastException |
| DirectCast-operator | Alle gegevenstypen | Het ene type moet overnemen van of het andere type implementeren | Gooit InvalidCastException |
| TryCast | Alleen referentietypen | Het ene type moet overnemen van of het andere type implementeren | Retourneert niets |
Overbelasting
De CType operator kan ook worden overbelast op een klasse of structuur die buiten uw code is gedefinieerd. Als uw code wordt geconverteerd naar of van een dergelijke klasse of structuur, moet u het gedrag van CType de operator ervan begrijpen. Zie Operator Procedures voor meer informatie.
Dynamische objecten converteren
Typeconversies van dynamische objecten worden uitgevoerd door door de gebruiker gedefinieerde dynamische conversies die gebruikmaken van de TryConvert of BindConvert methoden. Als u met dynamische objecten werkt, gebruikt u de CTypeDynamic methode om het dynamische object te converteren.
Example
In het volgende voorbeeld wordt de CType operator gebruikt om een expressie te converteren naar het Single gegevenstype.
Dim testNumber As Long = 1000
' The following line of code sets testNewType to 1000.0.
Dim testNewType As Single = CType(testNumber, Single)
Zie Impliciete en expliciete conversies voor meer voorbeelden.