Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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ésCIntamelyek 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
CTypeaz adattípusra és azObjectadattí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.