Megosztás a következőn keresztül:


CType operátor (Visual Basic)

Egy kifejezés adott adattípusra, objektumra, struktúrára, osztályra vagy felületre való explicit konvertálásának eredményét adja vissza.

Szemantika

CType(expression, typename)

Részek

expression Bármilyen érvényes kifejezés. Ha az érték expression kívül esik a megengedett typenametartományon, a Visual Basic kivételt jelez.

typename Bármely kifejezés, amely egy utasítás valamely As záradékában Dim jogi jellegű, azaz bármilyen adattípus, objektum, struktúra, osztály vagy felület neve.

Megjegyzések

Jótanács

Típuskonverziót a következő függvényekkel is végrehajthat:

  • Típuskonvertálási függvények, például CByte: , CDblés CInt amelyek egy adott adattípusra való átalakítást hajtanak végre. További információ: Típuskonvertálási függvények.
  • DirectCast operátor vagy TryCast operátor. Ezek az operátorok megkövetelik, hogy az egyik típus örökölje vagy implementálja a másik típust. Ezek valamivel jobb teljesítményt nyújtanak, mint CType az adattípusra és az Object adattípusból való konvertáláskor.

CType beágyazottan van lefordítva, ami azt jelenti, hogy a konverziós kód a kifejezést kiértékelő kód része. Bizonyos esetekben a kód gyorsabban fut, mert a konvertálás végrehajtásához nincs meghívva eljárás.

Ha nem határoz meg átalakítást a rendszer typename (például az egyikről expressionInteger a a pontraDate), a Visual Basic egy fordítási időpontra vonatkozó hibaüzenetet jelenít meg.

Ha a konvertálás futásidőben meghiúsul, a rendszer a megfelelő kivételt adja ki. Ha a szűkítési konverzió sikertelen, OverflowException akkor a leggyakoribb eredmény. Ha az átalakítás nincs meghatározva, akkor egy InvalidCastException bedobott értéket. Ez például akkor fordulhat elő, ha expression a típus Object és a futási idő típusa nem konvertálódik a következőre typename: .

Ha az ön által meghatározott osztály vagy struktúra adattípusa expressiontypename vagy adattípusa, akkor az adott osztályt vagy struktúrát átalakítási operátorként határozhatja meg CType . CType Ez túlterhelt operátorként működik. Ha ezt teszi, szabályozhatja az osztályba vagy struktúrába való átalakítások viselkedését, beleértve a kivehető kivételeket is.

Konverziós kulcsszavak

A típuskonvertálási kulcsszavak összehasonlítása a következő.

Keyword Adattípusok Argumentumkapcsolat Futásidejű hiba
CType Bármilyen adattípus A két adattípus közötti szélesítést vagy szűkítést kell definiálni Dob InvalidCastException
DirectCast operátor Bármilyen adattípus Az egyik típusnak örökölnie vagy implementálnia kell a másik típust Dob InvalidCastException
TryCast Csak referenciatípusok Az egyik típusnak örökölnie vagy implementálnia kell a másik típust Semmit nem ad vissza

Túlterhelés

Az CType operátor túlterhelhető a kódon kívül definiált osztályon vagy struktúrán is. Ha a kód egy ilyen osztályra vagy struktúrára konvertál, ügyeljen arra, hogy megértse az operátor viselkedését CType . További információ: Operátori eljárások.

Dinamikus objektumok konvertálása

A dinamikus objektumok típuskonvertálását a felhasználó által definiált dinamikus konverziók hajtják végre, amelyek a metódusokat vagy BindConvert metódusokat TryConvert használják. Ha dinamikus objektumokkal dolgozik, a CTypeDynamic metódussal konvertálhatja a dinamikus objektumot.

Example

Az alábbi példa egy kifejezés adattípussá alakításához használja az CTypeSingle operátort.

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

További példákért lásd az implicit és explicit konverziókat.

Lásd még