Sdílet prostřednictvím


Implicitní a explicitní převody (Visual Basic)

Implicitní převod nevyžaduje žádnou speciální syntaxi ve zdrojovém kódu.V následujícím příkladu Visual Basic implicitně převede hodnotu k na hodnotu s plovoucí desetinnou čárkou jednoduchá přesnost před přiřazením k q.

Dim k As Integer
Dim q As Double
' Integer widens to Double, so you can do this with Option Strict On.
k = 432
q = k

Explicitní převod používá klíčové slovo typ převodu.Visual Basicposkytuje několik takových klíčových, které převodní výrazu v závorkách na požadovaný typ.Tato klíčová slova fungují jako funkce, ale Kompilátor generuje vloženého kódu spuštění je poněkud rychlejší než pomocí volání funkce.

V následující rozšíření předchozího příkladu CInt klíčové slovo převede hodnotu q zpět na celé před přiřazením k k.

' q had been assigned the value 432 from k.
q = Math.Sqrt(q)
k = CInt(q)
' k now has the value 21 (rounded square root of 432).

Klíčová slova pro převod

Následující tabulka obsahuje klíčová slova k dispozici převodu.

Převod zadejte klíčové slovo.

Převede výraz na datový typ

Typy povolených dat výraz převést

CBool

Datový typ Boolean (Visual Basic)

Libovolný číselný typ (včetně Byte, SBytea výčet typů), String,Object

CByte

Typ dat Byte (Visual Basic)

Libovolný číselný typ (včetně SByte a výčet typů), Boolean, String,Object

CChar

Typ dat Char (Visual Basic)

String, Object

CDate

Typ dat Datum (Visual Basic)

String, Object

CDbl

Datový typ Double (Visual Basic)

Libovolný číselný typ (včetně Byte, SBytea výčet typů), Boolean, String,Object

CDec

Desetinný datový typ (Visual Basic)

Libovolný číselný typ (včetně Byte, SBytea výčet typů), Boolean, String,Object

CInt

Typ dat Integer (Visual Basic)

Libovolný číselný typ (včetně Byte, SBytea výčet typů), Boolean, String,Object

CLng

Datový typ Long (Visual Basic)

Libovolný číselný typ (včetně Byte, SBytea výčet typů), Boolean, String,Object

CObj

Datový typ objektu

Jakýkoliv typ

CSByte

Typ dat SByte (Visual Basic)

Libovolný číselný typ (včetně Byte a výčet typů), Boolean, String,Object

CShort

Krátké datový typ (Visual Basic)

Libovolný číselný typ (včetně Byte, SBytea výčet typů), Boolean, String,Object

CSng

Jeden typ dat (Visual Basic)

Libovolný číselný typ (včetně Byte, SBytea výčet typů), Boolean, String,Object

CStr

Datový typ String (Visual Basic)

Any numeric type (including Byte, SByte, and enumerated types), Boolean, Char, Char array, Date,Object

CType

Zadaný typ následuje čárka (,)

Při převodu do Základní datový typ (včetně základní typ pole), stejné typy povolený pro odpovídající klíčové slovo převodu

Při převodu složený datový typ, implementuje rozhraní a tříd, které dědí

Při převodu třídy nebo struktury, na kterém je přetížena CType, že třídy nebo struktury

CUInt

Typ dat UInteger

Libovolný číselný typ (včetně Byte, SBytea výčet typů), Boolean, String,Object

CULng

Typ dat ULong (Visual Basic)

Libovolný číselný typ (včetně Byte, SBytea výčet typů), Boolean, String,Object

CUShort

Typ dat UShort (Visual Basic)

Libovolný číselný typ (včetně Byte, SBytea výčet typů), Boolean, String,Object

Funkce CType

Funkce CType (Visual Basic) Působí na dva argumenty.První je výraz, který chcete převést a druhé třídy cílového data typu nebo objektu.Všimněte si, že první argument musí být výraz není typu.

CTypeje vložené funkce, což zkompilovaný kód umožňuje převod, často bez generování funkci volat.Zvýšení výkonu.

Srovnání CType s klíčová jiný typ převodu slova, viz Operátor DirectCast (Visual Basic) a Operátor TryCast (Visual Basic).

kca3w8x6.collapse_all(cs-cz,VS.110).gifZákladní typy

Následující příklad ukazuje použití CType.

k = CType(q, Integer)
' The following statement coerces w to the specific object class Label.
f = CType(w, Label)

kca3w8x6.collapse_all(cs-cz,VS.110).gifSložené typy

Můžete použít CType převést na složené datové typy i jako základní typy hodnot.Lze je také použít, kterými nutil třída objektu typu jeho rozhraní, jako v následujícím příkladu.

' Assume class cZone implements interface iZone.
Dim h As Object
' The first argument to CType must be an expression, not a type.
Dim cZ As cZone
' The following statement coerces a cZone object to its interface iZone.
h = CType(cZ, iZone)

kca3w8x6.collapse_all(cs-cz,VS.110).gifTypy polí

CTypeMůžete také převést pole datové typy, jako v následujícím příkladu.

Dim v() As classV
Dim obArray() As Object
' Assume some object array has been assigned to obArray.
' Check for run-time type compatibility.
If TypeOf obArray Is classV()
    ' obArray can be converted to classV.
    v = CType(obArray, classV())
End If

Další informace a příklad naleznete v tématu Převody Array (Visual Basic).

kca3w8x6.collapse_all(cs-cz,VS.110).gifTypy definující CType

Můžete definovat CType na třídy nebo struktury, které jste definovali.Umožňuje převádět hodnoty typu třídy nebo struktury.Další informace a příklad naleznete v tématu Postup: definování konverze operátoru (Visual Basic).

[!POZNÁMKA]

Hodnoty používané s klíčovým slovem převodu musí být platné pro datový typ cílového nebo dojde k chybě.Například pokud se pokusíte převést Long k Integer, hodnotu Long musí být v rozsahu platné Integer datový typ.

Poznámka k upozorněníUpozornění

Zadání CType převést z jedné třídy typu jiného selže při běhu Pokud typ zdroje není odvozen od typu místa určení.Vyvolá toto nedodržení InvalidCastException výjimku.

Však jeden z typů je struktura nebo třídy, které jste definovali a pokud jste definovali CType na této struktury nebo třídy lze převod úspěšný, splňuje požadavky vaší CType.Viz téma Postup: definování konverze operátoru (Visual Basic).

Provádění explicitní převod je také známa jako obsazení výraz pro daný datový typ nebo objekt třídy.

Viz také

Úkoly

Jak: převést objekt na jiný typ v jazyce Visual Basic

Poradce při potížích s typy dat (Visual Basic)

Referenční dokumentace

Souhrn typu dat (Visual Basic)

Funkce převodu typu (Visual Basic)

Koncepty

Převody mezi řetězce a jiné typy (Visual Basic)

Další zdroje

Převody typů jazyka Visual Basic

Struktury (Visual Basic)