Udostępnij za pośrednictwem


Konwersje jawne i niejawne (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

Boolean Data Type (Visual Basic)

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

CByte

Byte — Typ danych (Visual Basic)

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

CChar

Char — Typ danych (Visual Basic)

String, Object

CDate

Date — Typ danych (Visual Basic)

String, Object

CDbl

Double — Typ danych (Visual Basic)

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

CDec

Decimal — Typ danych (Visual Basic)

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

CInt

Integer — Typ danych (Visual Basic)

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

CLng

Long — Typ danych (Visual Basic)

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

CObj

Object — typ danych

Dowolny typ

CSByte

SByte — Typ danych (Visual Basic)

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

CShort

Short — Typ danych (Visual Basic)

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

CSng

Single — Typ danych (Visual Basic)

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

CStr

String — Typ danych (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

UInteger — Typ danych

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

CULng

ULong — Typ danych (Visual Basic)

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

CUShort

UShort — Typ danych (Visual Basic)

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

Funkcja CType

CType — Funkcja (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 DirectCast — Operator (Visual Basic) i TryCast — Operator (Visual Basic).

Typy 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)

Typy 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)

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

Typy 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 Porady: 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 Porady: definiowanie operatora konwersji (Visual Basic).

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

Zobacz też

Zadania

Porady: konwertowanie obiektu do innego typu w Visual Basic

Rozwiązywanie problemów związanych z typami danych (Visual Basic)

Informacje

Typ danych — Podsumowanie (Visual Basic)

Funkcje konwersji typu (Visual Basic)

Koncepcje

Konwertowanie pomiędzy ciągami a innymi typami danych (Visual Basic)

Inne zasoby

Konwersje plików w Visual Basic

Struktury (Visual Basic)