DirectCast İşleci (Visual Basic)
Devralma veya uygulamaya dayalı bir tür dönüştürme işlemi ekler.
Açıklamalar
DirectCast
dö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 Object
dö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 DirectCast
gö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 Integer
dö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 Integer
devralma 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.