Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Introducerar en typkonverteringsåtgärd baserat på arv eller implementering.
Anmärkningar
              DirectCast använder inte Visual Basic-hjälprutinerna för körning för konvertering, så det kan ge något bättre prestanda än CType när du konverterar till och från datatypen Object.
Du använder nyckelordet DirectCast på samma sätt som du använder nyckelordet CType-operatorn och TryCast-operatorn . Du anger ett uttryck som det första argumentet och en typ att konvertera det till som det andra argumentet. 
              DirectCast kräver en arvs- eller implementeringsrelation mellan datatyperna för de två argumenten. Det innebär att en typ måste ärva från eller implementera den andra.
Fel och fel
              DirectCast genererar ett kompilatorfel om det upptäcker att det inte finns någon arvs- eller implementeringsrelation. Men avsaknaden av ett kompilatorfel garanterar inte en lyckad konvertering. Om den önskade konverteringen minskar kan den misslyckas vid körning. Om detta händer utlöser körningen ett InvalidCastException fel.
Konverteringsnyckelord
En jämförelse av nyckelorden för typkonvertering är följande.
| Nyckelord | Datatyper | Argumentrelation | Körningsfel | 
|---|---|---|---|
| CType-operator | Alla datatyper | Utvidga eller begränsa konverteringen måste definieras mellan de två datatyperna | Kastar InvalidCastException | 
DirectCast | 
Alla datatyper | En typ måste ärva från eller implementera den andra typen | Kastar InvalidCastException | 
| TryCast-operator | Endast referenstyper | En typ måste ärva från eller implementera den andra typen | Returnerar ingenting | 
Exempel
I följande exempel visas två användningsområden för DirectCast, en som misslyckas vid körning och en som lyckas.
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)
I föregående exempel är qkörningstypen Double . 
              CType lyckas eftersom Double kan konverteras till Integer. Den första DirectCast misslyckas dock vid körning eftersom körningstypen inte Double har någon arvsrelation med Integer, även om det finns en konvertering. Den andra DirectCast lyckas eftersom den konverterar från typ Form till typ Control, från vilken Form ärver.