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.
Örtük dönüştürme, kaynak kodda özel bir söz dizimi gerektirmediğinden, herhangi bir ek işleme ihtiyaç duymaz. Aşağıdaki örnekte, Visual Basic, k değişkenine atamadan önce q değerini örtük olarak tek duyarlıklı bir sayıya dönüştürür.
Dim k As Integer
Dim q As Double
' Integer widens to Double, so you can do this with Option Strict On.
k = 432
q = k
Açık dönüştürmede tür dönüştürme anahtar sözcüğü kullanılır. Visual Basic, bir ifadeyi parantez içinde istenen veri türüne zorlamak için bu tür birkaç anahtar sözcük sağlar. Bu anahtar sözcükler işlevler gibi davranır, ancak derleyici kodu satır içinde oluşturur, bu nedenle yürütme bir işlev çağrısından biraz daha hızlıdır.
Önceki örneğin aşağıdaki uzantısında, CInt anahtar sözcüğü, q değerini önce geri bir tamsayıya dönüştürür ve ardından k'ye atar.
' q had been assigned the value 432 from k.
q = Math.Sqrt(q)
k = CInt(q)
' k now has the value 21 (rounded square root of 432).
Dönüştürme Anahtar Sözcükleri
Aşağıdaki tabloda kullanılabilir dönüştürme anahtar sözcükleri gösterilmektedir.
| Tür dönüştürme anahtar sözcüğü | bir ifadeyi veri türüne dönüştürür | dönüştürülecek ifadenin izin verilebilen veri türleri |
|---|---|---|
CBool |
Boole Veri Türü | Herhangi bir sayısal tür (, Byteve numaralandırılmış türler dahilSByte), String,Object |
CByte |
Bayt Veri Türü | Herhangi bir sayısal tür (ve numaralandırılmış türler dahil SByte ), Boolean, String, Object |
CChar |
Char Veri Türü |
String, Object |
CDate |
Tarih Veri Türü |
String, Object |
CDbl |
Double Veri Türü | Herhangi bir sayısal tür (Byte, SByte ve numaralandırılmış türler dahil), Boolean, String, Object |
CDec |
Ondalık Veri Türü | Herhangi bir sayısal tür (Byte, SByte ve numaralandırılmış türler dahil), Boolean, String, Object |
CInt |
Tamsayı Veri Türü | Herhangi bir sayısal tür (Byte, SByte ve numaralandırılmış türler dahil), Boolean, String, Object |
CLng |
Uzun Veri Türü | Herhangi bir sayısal tür (Byte, SByte ve numaralandırılmış türler dahil), Boolean, String, Object |
CObj |
nesne veri türü | Herhangi bir tür |
CSByte |
SByte Veri Türü | Herhangi bir sayısal tür (ve numaralandırılmış türler dahil Byte ), Boolean, String, Object |
CShort |
Kısa Veri Türü | Herhangi bir sayısal tür (Byte, SByte ve numaralandırılmış türler dahil), Boolean, String, Object |
CSng |
Single Veri Türü | Herhangi bir sayısal tür (Byte, SByte ve numaralandırılmış türler dahil), Boolean, String, Object |
CStr |
Dize Veri Türü | Herhangi bir sayısal tür (numaralandırılmış türler ve Byte, SByte dahil), Boolean, Char, Char dizi, Date, Object |
CType |
Virgülden sonra belirtilen tür (,) |
Bir temel veri türüne (bir temel veri türü dizisi dahil) dönüştürürken, karşılık gelen dönüştürme anahtar sözcüğü için izin verilen türlerle aynı türler Bileşik veri türüne dönüştürürken, uyguladığı arabirimler ve devraldığı sınıflar CType aşırı yükleme yaptığınız bir sınıfa veya yapıya dönüştürürken, bu sınıf veya yapı |
CUInt |
UInteger Veri Türü | Herhangi bir sayısal tür (Byte, SByte ve numaralandırılmış türler dahil), Boolean, String, Object |
CULng |
ULong Veri Türü | Herhangi bir sayısal tür (Byte, SByte ve numaralandırılmış türler dahil), Boolean, String, Object |
CUShort |
UShort Veri Türü | Herhangi bir sayısal tür (Byte, SByte ve numaralandırılmış türler dahil), Boolean, String, Object |
CType İşleci
CType İşleci iki bağımsız değişken üzerinde çalışır. Birincisi dönüştürülecek ifade, ikincisi hedef veri türü veya nesne sınıfıdır. İlk argümanın bir tür değil, bir ifade olması gerektiğini unutmayın.
CType
satır içi bir işlevdir, yani derlenen kod genellikle işlev çağrısı oluşturmadan dönüştürmeyi yapar. Bu, performansı artırır.
Diğer tür dönüştürme anahtar sözcükleriyle karşılaştırması CType için bkz. DirectCast İşleci ve TryCast İşleci.
Temel Türler
Aşağıdaki örnekte CTypekullanımı gösterilmektedir.
k = CType(q, Integer)
' The following statement coerces w to the specific object class Label.
f = CType(w, Label)
Bileşik Türler
Değerleri bileşik veri türlerine ve temel türlere dönüştürmek için kullanabilirsiniz CType . Aşağıdaki örnekte olduğu gibi bir nesne sınıfını arabirimlerinden birinin türüne zorlamak için de kullanabilirsiniz.
' Assume class cZone implements interface iZone.
Dim h As Object
' The first argument to CType must be an expression, not a type.
Dim cZ As cZone
' The following statement coerces a cZone object to its interface iZone.
h = CType(cZ, iZone)
Dizi Türleri
CType aşağıdaki örnekte olduğu gibi dizi veri türlerini de dönüştürebilir.
Dim v() As classV
Dim obArray() As Object
' Assume some object array has been assigned to obArray.
' Check for run-time type compatibility.
If TypeOf obArray Is classV()
' obArray can be converted to classV.
v = CType(obArray, classV())
End If
Daha fazla bilgi ve örnek için bkz. Dizi Dönüştürmeleri.
CType Tanımlayan Türler
Tanımladığınız bir sınıf veya yapı üzerinde tanımlayabilirsiniz CType . Bu, değerleri sınıfınızın veya yapınızın türüne ve türünden dönüştürmenize olanak tanır. Daha fazla bilgi ve örnek için bkz . Nasıl yapılır: Dönüştürme İşleci Tanımlama.
Uyarı
Dönüştürme anahtar sözcüğüyle kullanılan değerler hedef veri türü için geçerli olmalıdır veya bir hata oluşur. Örneğin, bir LongIntegeröğesine dönüştürmeyi denerseniz değerinin Long veri türü için Integer geçerli aralık içinde olması gerekir.
Dikkat
Kaynak tür hedef türden türetilmezse, bir sınıf türünü diğerine dönüştürmek için CType belirtmek çalışma zamanında başarısız olur. Böyle bir hata bir InvalidCastException istisna oluşturur.
Ancak, türlerden biri tanımladığınız bir yapı veya sınıfsa ve CType'ü yapı veya sınıf üzerinde tanımladıysanız, dönüştürme, CType gereksinimlerinizi karşılarsa başarılı olabilir. Bkz Nasıl yapılır: Dönüştürme İşleci Tanımlama.
Açık dönüştürme gerçekleştirmek, ifadeyi belirli bir veri türüne veya nesne sınıfına atama olarak da bilinir.