CType — Funkcja (Visual Basic)

Zwraca wynik jawnego konwertowania wyrażenia na określony typ danych, obiekt, strukturę, klasę lub interfejs.

Składnia

CType(expression, typename)

Części

expression Dowolne prawidłowe wyrażenie. Jeśli wartość elementu expression znajduje się poza zakresem dozwolonym przez typenameusługę , Visual Basic zgłasza wyjątek.

typename Dowolne wyrażenie, które jest legalne As w klauzuli w Dim instrukcji, czyli nazwę dowolnego typu danych, obiektu, struktury, klasy lub interfejsu.

Uwagi

Porada

Do przeprowadzenia konwersji typu można również użyć następujących funkcji:

  • Funkcje konwersji typów, takie jak CByte, CDbli CInt , które wykonują konwersję na określony typ danych. Aby uzyskać więcej informacji, zobacz Funkcje konwersji typów.
  • Operator directcast lub operator trycast. Te operatory wymagają, aby jeden typ dziedziczył lub implementuje inny typ. Mogą one zapewnić nieco lepszą wydajność niż CType podczas konwertowania Object na i z typu danych.

CType jest kompilowany w tekście, co oznacza, że kod konwersji jest częścią kodu, który oblicza wyrażenie. W niektórych przypadkach kod jest uruchamiany szybciej, ponieważ żadne procedury nie są wywoływane w celu przeprowadzenia konwersji.

Jeśli nie zdefiniowano konwersji z na (na przykład z expressionInteger do Datetypename ), Visual Basic wyświetla komunikat o błędzie kompilatora.

Jeśli konwersja nie powiedzie się w czasie wykonywania, zostanie zgłoszony odpowiedni wyjątek. Jeśli konwersja zawężania zakończy się niepowodzeniem, OverflowException jest to najbardziej typowy wynik. Jeśli konwersja jest niezdefiniowana, InvalidCastException zostanie wyrzucona. Na przykład może się to zdarzyć, jeśli expression jest typu, a jego typ Object czasu wykonywania nie ma konwersji na typename.

Jeśli typ expression danych lub jest zdefiniowaną klasą lub typename strukturą, możesz zdefiniować CType dla tej klasy lub struktury jako operator konwersji. To sprawia, że CType działa jako przeciążony operator. Jeśli to zrobisz, możesz kontrolować zachowanie konwersji do i z klasy lub struktury, w tym wyjątki, które można zgłosić.

Słowa kluczowe konwersji

Porównanie słów kluczowych konwersji typów jest następujące.

Słowo kluczowe Typy danych Relacja argumentów Niepowodzenie czasu wykonywania
CType Dowolne typy danych Konwersja rozszerzająca lub zawężająca musi być zdefiniowana między dwoma typami danych Zgłasza InvalidCastException
DirectCast, operator Dowolne typy danych Jeden typ musi dziedziczyć lub implementować inny typ Zgłasza InvalidCastException
TryCast Tylko typy odwołań Jeden typ musi dziedziczyć lub implementować inny typ Zwraca nic

Przeciążenie

CType Operator może być również przeciążony na klasie lub strukturze zdefiniowanej poza kodem. Jeśli kod konwertuje na lub z takiej klasy lub struktury, upewnij się, że rozumiesz zachowanie operatora CType . Aby uzyskać więcej informacji, zobacz Procedury operatorów.

Konwertowanie obiektów dynamicznych

Konwersje typów obiektów dynamicznych są wykonywane przez konwersje dynamiczne zdefiniowane przez użytkownika, które używają TryConvert metod lub BindConvert . Jeśli pracujesz z obiektami dynamicznymi, użyj CTypeDynamic metody , aby przekonwertować obiekt dynamiczny.

Przykład

W poniższym przykładzie użyto CType funkcji, aby przekonwertować wyrażenie na Single typ danych.

Dim testNumber As Long = 1000
' The following line of code sets testNewType to 1000.0.
Dim testNewType As Single = CType(testNumber, Single)

Aby uzyskać dodatkowe przykłady, zobacz Niejawne i jawne konwersje.

Zobacz też