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 som inte utlöser ett undantag.
Om ett konverteringsförsök misslyckas CType
och DirectCast
båda utlöser ett InvalidCastException fel. Detta kan påverka programmets prestanda negativt. TryCast
returnerar Ingenting, så att du i stället för att behöva hantera ett möjligt undantag bara behöver testa det returnerade resultatet mot Nothing
.
Du använder nyckelordet TryCast
på samma sätt som du använder nyckelordet CType-funktion och DirectCast-operator. Du anger ett uttryck som det första argumentet och en typ att konvertera det till som det andra argumentet. TryCast
fungerar endast på referenstyper, till exempel klasser och gränssnitt. Det kräver en arvs- eller implementeringsrelation mellan de två typerna. Det innebär att en typ måste ärva från eller implementera den andra.
TryCast
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 TryCast
returnerar ingenting.
En jämförelse av nyckelorden för typkonvertering är följande.
Nyckelord | Datatyper | Argumentrelation | Körningsfel |
---|---|---|---|
CType-funktion | Alla datatyper | Utvidga eller begränsa konverteringen måste definieras mellan de två datatyperna | Kastar InvalidCastException |
DirectCast-operator | Alla datatyper | En typ måste ärva från eller implementera den andra typen | Kastar InvalidCastException |
TryCast |
Endast referenstyper | En typ måste ärva från eller implementera den andra typen | Returnerar ingenting |
I följande exempel visas hur du använder 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
Feedback om .NET
.NET är ett öppen källkod projekt. Välj en länk för att ge feedback: