DirectCast İşleci (Visual Basic)

Devralma veya uygulamaya dayalı bir tür dönüştürme işlemi ekler.

Açıklamalar

DirectCastdönüştürme için Visual Basic çalışma zamanı yardımcı yordamlarını kullanmaz, bu nedenle veri türüne ve veri türünden Objectdönüştürmeye göre CType biraz daha iyi performans sağlayabilir.

Anahtar sözcüğünüDirectCast, CType İşlevi ve TryCast İşleci anahtar sözcüğünü kullanma yönteminize benzer şekilde 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. DirectCast iki bağımsız değişkenin veri türleri 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

DirectCast 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. Bu durumda, çalışma zamanı bir InvalidCastException hata oluşturur.

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 Herhangi bir veri türü Bir türün diğer türden devralması veya diğer türü uygulaması gerekir Atar InvalidCastException
TryCast İşleci 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, biri çalışma zamanında başarısız olan, diğeri başarılı olan iki kullanım DirectCastgösterilmektedir.

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)

Yukarıdaki örnekte, çalışma zamanı türü q şeklindedir Double. CType başarılı olur çünkü Double olarak Integerdönüştürülebilir. Ancak, ilk DirectCast çalışma zamanında başarısız olur çünkü çalışma zamanı türünün Double ile Integerdevralma ilişkisi yoktur, ancak bir dönüştürme vardır. İkinci DirectCast başarılı olur çünkü türünden Form devralınan Form türüne Controldönüştürülür.

Ayrıca bkz.