Udostępnij za pośrednictwem


Konwersje niejawne i jawne (Visual Basic)

Niejawna konwersja nie wymagają specjalnej składni w kodzie źródłowym.W poniższym przykładzie Visual Basic niejawnie konwertuje wartość k na wartość zmiennoprzecinkowa pojedynczej precyzji, przed przypisaniem go do 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

Konwersja jawna wykorzystuje słowo kluczowe konwersji typu.Visual Basiczapewnia kilku takich słów, które wymuszone wyrażenia w nawiasach typu żądane dane.Te słowa kluczowe pełnią funkcje, ale kompilator generuje kod w tekście, więc wykonanie jest nieznacznie szybciej niż z wywołania funkcji.

Następujące rozszerzenia poprzedniego przykładu CInt słowa kluczowego konwertuje wartość q wróć do liczby całkowitej przed przypisaniem go do 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).

Słowa kluczowe konwersji

W poniższej tabeli przedstawiono dostępne konwersji słowa kluczowe.

Słowo kluczowe konwersja typu

Wyrażenie jest konwertowany na typ danych

Typy danych dopuszczalnego wyrażenia do konwersji

CBool

Typ danych Boolean (Visual Basic)

Dowolny typ numeryczne (łącznie z Byte, SByte, a wymienione typy), String,Object

CByte

Bajt, typ danych (Visual Basic)

Dowolny typ numeryczne (łącznie z SByte i typy wyliczane), Boolean, String,Object

CChar

Typ danych CHAR (Visual Basic)

String, Object

CDate

Typ danych Data (Visual Basic)

String, Object

CDbl

Podwójne typ danych (Visual Basic)

Dowolny typ numeryczne (łącznie z Byte, SByte, a wymienione typy), Boolean, String,Object

CDec

Typ danych dziesiętny (Visual Basic)

Dowolny typ numeryczne (łącznie z Byte, SByte, a wymienione typy), Boolean, String,Object

CInt

Typ danych Integer (Visual Basic)

Dowolny typ numeryczne (łącznie z Byte, SByte, a wymienione typy), Boolean, String,Object

CLng

Typ danych LONG (Visual Basic)

Dowolny typ numeryczne (łącznie z Byte, SByte, a wymienione typy), Boolean, String,Object

CObj

Typ danych Object

Dowolny typ

CSByte

Typ danych SByte (Visual Basic)

Dowolny typ numeryczne (łącznie z Byte i typy wyliczane), Boolean, String,Object

CShort

Krótkie typ danych (Visual Basic)

Dowolny typ numeryczne (łącznie z Byte, SByte, a wymienione typy), Boolean, String,Object

CSng

Pojedynczy typ danych (Visual Basic)

Dowolny typ numeryczne (łącznie z Byte, SByte, a wymienione typy), Boolean, String,Object

CStr

Typ danych String (Visual Basic)

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

CType

Określony typ po przecinku (,)

Podczas konwersji na Typ danych elementarne (łącznie z tablicy typu podstawowe), takie same typy dopuszczalne odpowiadające im słowa kluczowego konwersji

Podczas konwersji na złożony typ danych, interfejsy, które implementuje i klas, z których dziedziczy

Podczas konwersji do klasy lub struktury, w którym zostały nadmiernie CType, że klasy lub struktury

CUInt

Typ danych UInteger

Dowolny typ numeryczne (łącznie z Byte, SByte, a wymienione typy), Boolean, String,Object

CULng

Typ danych ULong (Visual Basic)

Dowolny typ numeryczne (łącznie z Byte, SByte, a wymienione typy), Boolean, String,Object

CUShort

Typ danych UShort (Visual Basic)

Dowolny typ numeryczne (łącznie z Byte, SByte, a wymienione typy), Boolean, String,Object

Funkcja CType

Funkcja CType (Visual Basic) Działa na dwa argumenty.Pierwszy z nich to wyrażenie, które ma zostać przekonwertowane, a drugi jest miejsce docelowe danych typu lub obiekt klasy.Należy zauważyć, że pierwszy argument musi być wyrażenie nie może być typem.

CTypejest funkcji śródwierszowej, co oznacza skompilowany kod czyni konwersję, często bez generowania funkcji wywołania.Zwiększa to wydajność.

Dla porównania z CType z innego typu konwersji kluczowych, zobacz Operator DirectCast (Visual Basic) i Operator TryCast (Visual Basic).

kca3w8x6.collapse_all(pl-pl,VS.110).gifTypy podstawowe

Poniższy przykład ilustruje użycie CType.

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

kca3w8x6.collapse_all(pl-pl,VS.110).gifTypy złożone

Można użyć CType do konwersji wartości na złożone typy danych również, aby podstawowe typy.Można również użyć go do zmuszania klasy obiektu typu jego interfejsy, jak w poniższym przykładzie.

' 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(pl-pl,VS.110).gifTypy tablicy

CTypemożna także konwertować typów danych w tablicy, jak w poniższym przykładzie.

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

Aby uzyskać więcej informacji i przykładem, zobacz Tablica konwersji (Visual Basic).

kca3w8x6.collapse_all(pl-pl,VS.110).gifTypy Definiowanie CType

Można zdefiniować CType na klasy lub struktury, które zostały zdefiniowane.Pozwala to na konwertowanie wartości typu klasy lub struktury.Aby uzyskać więcej informacji i przykładem, zobacz Jak: Definiowanie operatora konwersji (Visual Basic).

[!UWAGA]

Wartości używane ze słowem kluczowym konwersji musi być prawidłowa dla typu danych przeznaczenia lub występuje błąd.Na przykład, jeśli próba konwersji Long do Integer, wartość Long musi być prawidłowego zakresu dla Integer typu danych.

Informacje dotyczące przestrogiPrzestroga

Określanie CType do konwersji z jedną klasę typu do innego kończy się niepowodzeniem w czasie wykonywania, jeśli typ źródła nie pochodzi od typu miejsca docelowego.Wyrzuca się takiej awarii InvalidCastException wyjątku.

Jednakże jest jednym z typów struktury lub klasy, które zostały zdefiniowane i zdefiniowane CType do tej struktury lub klasy konwersji można pomyślnie, jeżeli spełnia ono wymagania użytkownika CType.See Jak: Definiowanie operatora konwersji (Visual Basic).

Konwersja jawna wykonywania jest również znany jako odlewania wyrażenie klasę typu danych danego obiektu.

Zobacz też

Zadania

Jak: konwertowanie obiektu na inny typ w języku Visual Basic

Rozwiązywanie problemów z typów danych (Visual Basic)

Informacje

Podsumowanie typów danych (Visual Basic)

Funkcje konwersji typu (Visual Basic)

Koncepcje

Konwersje między ciągi i innych typów (Visual Basic)

Inne zasoby

Konwersje typów w języku Visual Basic

Budowle (Visual Basic)