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

Boolean – datový typ (Visual Basic)

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

CByte

Byte – datový typ (Visual Basic)

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

CChar

Char – datový typ (Visual Basic)

String, Object

CDate

Date – datový typ (Visual Basic)

String, Object

CDbl

Double – datový typ (Visual Basic)

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

CDec

Decimal – datový typ (Visual Basic)

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

CInt

Integer – datový typ (Visual Basic)

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

CLng

Long – datový typ (Visual Basic)

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

CObj

Datový typ objektu

Jakýkoliv typ

CSByte

SByte – datový typ (Visual Basic)

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

CShort

Short – datový typ (Visual Basic)

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

CSng

Single – datový typ (Visual Basic)

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

CStr

String – datový typ (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

UInteger – datový typ

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

CULng

ULong – datový typ (Visual Basic)

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

CUShort

UShort – datový typ (Visual Basic)

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

Funkce CType

CType – funkce (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 DirectCast – operátor (Visual Basic) a TryCast – operátor (Visual Basic).

Zá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)

Slož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)

Typy 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 pole (Visual Basic).

Typy 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 Postupy: Definice operátora převodu (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 Postupy: Definice operátora převodu (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

Postupy: Převedení objektu na jiný typ v jazyce Visual Basic

Řešení potíží s datovými typy (Visual Basic)

Referenční dokumentace

Souhrn datových typů (Visual Basic)

Funkce pro převod typů (Visual Basic)

Koncepty

Převody mezi řetězci a ostatními typy (Visual Basic)

Další zdroje

Převody typů v jazyce Visual Basic

Struktury (Visual Basic)