Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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ść expression elementu znajduje się poza zakresem dozwolonym przez typenameprogram , program 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
Wskazówka
Do przeprowadzenia konwersji typu można również użyć następujących funkcji:
- Funkcje konwersji typów, takie jak
CByte,CDbliCInt, które wykonują konwersję na określony typ danych. Aby uzyskać więcej informacji, zobacz Funkcje konwersji typów. -
Operator emisji bezpośredniej lub operator trycast. Te operatory wymagają, aby jeden typ dziedziczył lub implementuje inny typ. Mogą one zapewnić nieco lepszą wydajność niż
CTypepodczas konwertowaniaObjectna i z typu danych.
CType jest kompilowany w tekście, co oznacza, że kod konwersji jest częścią kodu, który ocenia wyrażenie. W niektórych przypadkach kod działa szybciej, ponieważ żadne procedury nie są wywoływane w celu przeprowadzenia konwersji.
Jeśli żadna konwersja nie jest zdefiniowana z do typename (na przykład z expressionInteger do Date), program Visual Basic wyświetla komunikat o błędzie czasu kompilacji.
Jeśli konwersja nie powiedzie się w czasie wykonywania, zostanie zgłoszony odpowiedni wyjątek. Jeśli konwersja zawężania nie powiedzie się, OverflowException jest to najbardziej typowy wynik. Jeśli konwersja jest niezdefiniowana, zgłaszany InvalidCastException element. Na przykład może się to zdarzyć, jeśli expression jest typu Object , a jego typ 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 mogą zostać zgłoszone.
Słowa kluczowe konwersji
Porównanie słów kluczowych konwersji typów jest następujące.
| Keyword | 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 |
| Operator emisji bezpośredniej | Dowolne typy danych | Jeden typ musi dziedziczyć lub implementować inny typ | Zgłasza InvalidCastException |
| Emisja próbna | Tylko typy odwołań | Jeden typ musi dziedziczyć lub implementować inny typ | Zwraca nic |
Przeciążanie
Operator CType może być również przeciążony na klasie lub strukturze zdefiniowanej poza kodem. Jeśli kod konwertuje się na taką klasę lub strukturę, 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.
Example
W poniższym przykładzie użyto CType operatora , 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.