Udostępnij za pośrednictwem


DirectCast — Operator (Visual Basic)

Wprowadza oparte na dziedziczenie lub realizacji operacji konwersji typu.

Uwagi

DirectCastnie używać języka Visual Basic pomocnika run-time procedur konwersji, co zapewnia nieco większą wydajność niż CType podczas konwersji z typu danych i Object.

Za pomocą DirectCast podobny sposób można użyć słowa kluczowego CType — Funkcja (Visual Basic) i TryCast — Operator (Visual Basic) słowa kluczowego.Musisz wpisać wyrażenie jako pierwszy argument i typu do konwertowania jako drugi argument.DirectCastwymaga relacji dziedziczenia lub wykonania między typami danych z dwóch argumentów.Oznacza to, że jeden typ musi dziedziczyć lub wykonania drugiej.

Błędy i błędy

DirectCastgeneruje błąd kompilatora, jeśli wykryje, że istnieje żadnej relacji dziedziczenia lub wykonania.Jednak brak błąd kompilatora nie gwarantuje pomyślne konwersji.Jeśli żądany rodzaj konwersji jest zawężenie, może nie działać w czasie wykonywania.Jeśli tak się stanie, aparat plików wykonywalnych wyrzuca InvalidCastException błąd.

Słowa kluczowe konwersji

Porównanie wpisz słowa kluczowe konwersji jest następująca:

Słowo kluczowe

Typy danych

Argument relacji

Błąd czasu wykonywania

CType — Funkcja (Visual Basic)

Wszystkie typy danych

Rozszerzenie lub zwężenie konwersji należy zdefiniować między typami danych dwóch

WyrzucaInvalidCastException

DirectCast

Wszystkie typy danych

Jeden typ musi dziedziczyć lub wdrożenia innego typu

WyrzucaInvalidCastException

TryCast — Operator (Visual Basic)

Tylko typy odwołań

Jeden typ musi dziedziczyć lub wdrożenia innego typu

ZwracaNothing (Visual Basic)

Przykład

Poniższy przykład ilustruje dwa rodzaje zastosowania DirectCast, taką, która kończy się niepowodzeniem w czasie wykonywania i jeden powiedzie się.

Dim q As Object = 2.37
Dim i As Integer = CType(q, Integer)
' The following conversion fails at run time 
Dim j As Integer = DirectCast(q, Integer)
Dim f As New System.Windows.Forms.Form
Dim c As System.Windows.Forms.Control
' The following conversion succeeds.
c = DirectCast(f, System.Windows.Forms.Control)

W poprzednim przykładzie typu run-time q jest Double.CTypepowiedzie się, ponieważ Double mogą być konwertowane na Integer.Jednakże pierwszy DirectCast kończy się niepowodzeniem w czasie wykonywania, ponieważ typ run-time Double ma ono żadnej relacji dziedziczenia z Integer, mimo że istnieje konwersja.Drugi DirectCast powiedzie się, ponieważ są konwertowane typu Form do typu Control, z którego Form dziedziczy.

Zobacz też

Informacje

Convert.ChangeType

Koncepcje

Rozszerzanie i zwężanie konwersji (Visual Basic)

Konwersje jawne i niejawne (Visual Basic)