TryCast İşleci (Visual Basic)

Özel durum oluşturmayan bir tür dönüştürme işlemi sunar.

Açıklamalar

Denenen bir dönüştürme başarısız olursa CType ve DirectCast her ikisi de bir InvalidCastException hata oluşturur. Bu, uygulamanızın performansını olumsuz etkileyebilir. TryCasthiçbir şeydöndürmez, bu nedenle olası bir özel durumu işlemek zorunda kalmak yerine yalnızca döndürülen sonucu test etmeniz gerekir Nothing .

TryCastAnahtar sözcüğünü CType Işlevini ve DirectCast İşleci anahtar sözcüğünü kullandığınız şekilde kullanırsınız. İlk bağımsız değişken olarak bir ifade ve ikinci bağımsız değişken olarak dönüştürülecek bir tür sağlarsınız. TryCast Yalnızca sınıflar ve arabirimler gibi başvuru türlerinde çalışır. İki tür arasında devralma veya uygulama ilişkisi gerektirir. Bu, bir türün diğerini devralması ya da uygulamanız gereken anlamına gelir.

Hatalar ve hatalar

TryCast devralma veya uygulama ilişkisi olmadığını algılarsa bir derleyici hatası oluşturur. Ancak bir derleyici hatasının olmaması, başarılı bir dönüştürmeyi garanti etmez. İstenen dönüştürme daraltılamaz, çalışma zamanında başarısız olabilir. Bu durumda TryCast hiçbir şeydöndürmez.

Dönüşüm Anahtar Sözcükleri

Tür dönüştürme anahtar sözcüklerini karşılaştırma aşağıdaki gibidir.

Sözcükle Veri türleri Bağımsız değişken ilişkisi Çalışma zamanı hatası
CType İşlevi Tüm veri türleri İki veri türü arasında genişletme veya daraltma dönüştürmesi tanımlanmalıdır Oluşturur InvalidCastException
DirectCast İşleci Tüm veri türleri Bir tür, diğer türden devralması veya uygulamamalıdır Oluşturur InvalidCastException
TryCast Yalnızca başvuru türleri Bir tür, diğer türden devralması veya uygulamamalıdır Hiçbir şey döndürmez

Örnek

Aşağıdaki örnek nasıl kullanılacağını göstermektedir 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

Ayrıca bkz.