Dela via


CType-funktion (Visual Basic)

Returnerar resultatet av att explicit konvertera ett uttryck till en angiven datatyp, objekt, struktur, klass eller gränssnitt.

Syntax

CType(expression, typename)

Delar

expression Valfritt giltigt uttryck. Om värdet för expression ligger utanför det intervall som tillåts av typenamegenererar Visual Basic ett undantag.

typename Alla uttryck som är lagliga i en As -sats i en Dim -instruktion, dvs. namnet på alla datatyper, objekt, struktur, klass eller gränssnitt.

Kommentarer

Dricks

Du kan också använda följande funktioner för att utföra en typkonvertering:

CType kompileras infogat, vilket innebär att konverteringskoden är en del av koden som utvärderar uttrycket. I vissa fall körs koden snabbare eftersom inga procedurer anropas för att utföra konverteringen.

Om ingen konvertering har definierats från expression till typename (till exempel från Integer till Date) visar Visual Basic ett felmeddelande om kompileringstid.

Om en konvertering misslyckas vid körningen genereras lämpligt undantag. Om en begränsad konvertering misslyckas är ett OverflowException av de vanligaste resultaten. Om konverteringen är odefinierad utlöses en InvalidCastException in. Detta kan till exempel inträffa om expression är av typen Object och dess körningstyp inte har någon konvertering till typename.

Om datatypen expression för eller typename är en klass eller struktur som du har definierat kan du definiera CType den klassen eller strukturen som en konverteringsoperator. Detta fungerar CType som en överbelastad operator. Om du gör detta kan du styra beteendet för konverteringar till och från din klass eller struktur, inklusive de undantag som kan genereras.

Konverteringsnyckelord

En jämförelse av nyckelorden för typkonvertering är följande.

Nyckelord Datatyper Argumentrelation Körningsfel
CType Alla datatyper Utvidga eller begränsa konverteringen måste definieras mellan de två datatyperna Kastar InvalidCastException
DirectCast-operator Alla datatyper En typ måste ärva från eller implementera den andra typen Kastar InvalidCastException
TryCast Endast referenstyper En typ måste ärva från eller implementera den andra typen Returnerar ingenting

Överbelastning

Operatorn CType kan också överbelastas på en klass eller struktur som definierats utanför koden. Om koden konverteras till eller från en sådan klass eller struktur bör du vara säker på att du förstår beteendet hos dess CType operatör. Mer information finns i Operatorprocedurer.

Konvertera dynamiska objekt

Typkonverteringar av dynamiska objekt utförs av användardefinierade dynamiska konverteringar som använder TryConvert metoderna eller BindConvert . Om du arbetar med dynamiska objekt använder du CTypeDynamic metoden för att konvertera det dynamiska objektet.

Exempel

I följande exempel används CType funktionen för att konvertera ett uttryck till Single datatypen.

Dim testNumber As Long = 1000
' The following line of code sets testNewType to 1000.0.
Dim testNewType As Single = CType(testNumber, Single)

Ytterligare exempel finns i Implicita och explicita konverteringar.

Se även