Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Vrátí výsledek explicitního převodu výrazu na zadaný datový typ, objekt, strukturu, třídu nebo rozhraní.
Syntaxe
CType(expression, typename)
Části
expression Libovolný platný výraz. Pokud je hodnota expression mimo rozsah povolený typename, Visual Basic vyvolá výjimku.
typename Libovolný výraz, který je v klauzuli v As klauzuli v Dim příkazu, tj. název libovolného datového typu, objektu, struktury, třídy nebo rozhraní.
Poznámky
Návod
K převodu typů můžete použít také následující funkce:
- Funkce převodu typů, například
CByte,CDblaCIntkteré provádějí převod na určitý datový typ. Další informace naleznete v tématu Funkce převodu typů. -
DirectCast – operátor nebo operátor TryCast Tyto operátory vyžadují, aby jeden typ dědil nebo implementovali druhý typ. Můžou poskytovat poněkud lepší výkon než
CTypepři převodu na datový typ a z datovéhoObjecttypu.
CType je zkompilován vložený, což znamená, že kód převodu je součástí kódu, který vyhodnotí výraz. V některých případech se kód spustí rychleji, protože k provedení převodu nejsou voláné žádné procedury.
Pokud není definován žádný převod z expression do typename (například z Integer do Date), Visual Basic zobrazí chybovou zprávu o době kompilace.
Pokud převod selže za běhu, vyvolá se příslušná výjimka. Pokud zužující převod selže, OverflowException jedná se o nejběžnější výsledek. Pokud převod není definován, vyvolá InvalidCastException se vyvolání. K tomu může dojít například v případě, že expression je typu Object a jeho typ za běhu nemá žádný převod na typename.
Pokud je datový typ expression třídy nebo typename struktury, kterou jste definovali, můžete CType definovat tuto třídu nebo strukturu jako operátor převodu. Jedná se CType o přetížený operátor. Pokud to uděláte, můžete řídit chování převodů do a ze třídy nebo struktury, včetně výjimek, které mohou být vyvolány.
Klíčová slova pro převod
Porovnání klíčových slov převodu typů je následující.
| Keyword | Datové typy | Relace argumentů | Selhání za běhu |
|---|---|---|---|
CType |
Všechny datové typy | Mezi těmito dvěma datovými typy musí být definován rozšiřující nebo zúžený převod. | Hází InvalidCastException |
| Operátor DirectCast | Všechny datové typy | Jeden typ musí dědit nebo implementovat druhý typ. | Hází InvalidCastException |
| TryCast | Pouze odkazové typy | Jeden typ musí dědit nebo implementovat druhý typ. | Vrátí hodnotu Nothing. |
Přetížení
Operátor CType může být také přetížen u třídy nebo struktury definované mimo váš kód. Pokud se váš kód převede na nebo z takové třídy nebo struktury, nezapomeňte pochopit chování jeho CType operátoru. Další informace naleznete v tématu Procedury operátoru.
Převod dynamických objektů
Převody typů dynamických objektů se provádějí uživatelsky definovanými dynamickými převody, které používají TryConvert metody nebo BindConvert metody. Pokud pracujete s dynamickými objekty, použijte metodu CTypeDynamic k převodu dynamického objektu.
Example
Následující příklad používá CType operátor k převodu výrazu na Single datový typ.
Dim testNumber As Long = 1000
' The following line of code sets testNewType to 1000.0.
Dim testNewType As Single = CType(testNumber, Single)
Další příklady najdete v tématu Implicitní a explicitní převody.