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.
Wprowadza operację konwersji typu, która nie zgłasza wyjątku.
Uwagi
Jeśli próba konwersji nie powiedzie się, CType i DirectCast oba wywołają InvalidCastException błąd. Może to negatywnie wpłynąć na wydajność aplikacji.
TryCast Zwraca wartość Nic, więc zamiast obsługiwać możliwy wyjątek, należy przetestować tylko zwrócony wynik względem Nothingelementu .
Słowo kluczowe jest używane TryCast w taki sam sposób, jak w przypadku operatora CType i słowa kluczowego Operator directcast. Należy podać wyrażenie jako pierwszy argument i typ, aby przekonwertować go na jako drugi argument.
TryCast działa tylko na typach referencyjnych, takich jak klasy i interfejsy. Wymaga ona dziedziczenia lub relacji implementacji między dwoma typami. Oznacza to, że jeden typ musi dziedziczyć lub implementować drugi.
Błędy i błędy
TryCast Generuje błąd kompilatora, jeśli wykryje, że nie istnieje żadna relacja dziedziczenia ani implementacji. Jednak brak błędu kompilatora nie gwarantuje pomyślnej konwersji. Jeśli żądana konwersja jest zawężana, może zakończyć się niepowodzeniem w czasie wykonywania. Jeśli tak się stanie, TryCast zwraca wartość Nic.
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 Operator | 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 |
TryCast |
Tylko typy odwołań | Jeden typ musi dziedziczyć lub implementować inny typ | Zwraca nic |
Przykład
W poniższym przykładzie pokazano, jak używać TryCast.
Function PrintTypeCode(ByVal obj As Object) As String
Dim objAsConvertible As IConvertible = TryCast(obj, IConvertible)
If objAsConvertible Is Nothing Then
Return obj.ToString() & " does not implement IConvertible"
Else
Return "Type code is " & objAsConvertible.GetTypeCode()
End If
End Function