Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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 CTypedönüştürmeye göre Object biraz daha iyi performans sağlayabilir.
Anahtar sözcüğünü DirectCast, CType İşleci 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üştürme 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 İşleci | 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 Control türüne Formdönüştürülür.