TryCast İşleci (Visual Basic)

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

Açıklamalar

Dönüştürme girişimi başarısız olursa CType ve DirectCast her ikisi de hata oluşturursa InvalidCastException . Bu, uygulamanızın performansını olumsuz etkileyebilir. TryCastHiçbir şey döndürmez, böylece olası bir özel durumu işlemek yerine yalnızca döndürülen sonucu ile Nothingtest etmeniz gerekir.

Anahtar sözcüğünüTryCast, CType İşlevi ve DirectCast İşleci anahtar sözcüğünü kullandığınız gibi kullanırsınız. İlk bağımsız değişken olarak bir ifade ve bunu ikinci bağımsız değişken olarak dönüştürmek için bir tür sağlayın. 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ğerinden devralması veya uygulaması gerektiği anlamına gelir.

Hatalar ve Hatalar

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

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

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

Anahtar sözcük Veri türleri Bağımsız değişken ilişkisi Çalışma zamanı hatası
CType İşlevi Herhangi bir veri türü Genişletme veya daraltma dönüştürmesi iki veri türü arasında tanımlanmalıdır Atar InvalidCastException
DirectCast İşleci Herhangi bir veri türü Bir türün diğer türden devralması veya diğer türü uygulaması gerekir Atar InvalidCastException
TryCast Yalnızca başvuru türleri Bir türün diğer türden devralması veya diğer türü uygulaması gerekir Hiçbir Şey Döndürmez

Örnek

Aşağıdaki örnekte nasıl kullanılacağı TryCastgösterilmektedir.

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.