Dizi Dönüştürmeleri (Visual Basic)
Aşağıdaki koşulları karşılamanız koşuluyla bir dizi türünü farklı bir dizi türüne dönüştürebilirsiniz:
Eşit Derece. İki dizinin dereceleri aynı olmalıdır, yani aynı sayıda boyuta sahip olmalıdır. Ancak, ilgili boyutların uzunluklarının aynı olması gerekmez.
Öğe Veri Türü. Her iki dizinin öğelerinin veri türleri başvuru türleri olmalıdır. En az bir
Integer
Long
değer türü söz konusu olduğundan bir diziyi diziye, hatta diziyeObject
dönüştüremezsiniz. Daha fazla bilgi için bkz . Değer Türleri ve Başvuru Türleri.Dönüştürülebilirlik. İki dizinin öğe türleri arasında genişletme veya daraltma dönüştürmesi mümkün olmalıdır. Bu gereksinimin başarısız olmasına örnek olarak, bir
String
dizi ile öğesinden System.Attributetüretilen bir sınıfın dizisi arasında dönüştürme girişiminde bulunuudur. Bu iki türün ortak bir yanı yoktur ve aralarında hiçbir dönüştürme yoktur.
Bir dizi türünün başka bir dizi türüne dönüştürülmesi, ilgili öğelerin dönüştürülmesi genişletme veya daraltma durumuna bağlı olarak genişletilir veya daraltılır. Daha fazla bilgi için bkz . Genişletme ve Daraltma Dönüştürmeleri.
Nesne Dizisine Dönüştürme
Başlatmadan bir Object
dizi bildirdiğinizde, öğe türü Object
başlatılmamış olarak kaldığı sürece olur. Bunu belirli bir sınıfın dizisine ayarladığınızda, bu sınıfın türünü alır. Ancak, temel türü hala Object
'dir ve daha sonra ilgisiz bir sınıfın başka bir dizisine ayarlayabilirsiniz. Tüm sınıflar öğesinden türetildiklerinden Object
, dizinin öğe türünü herhangi bir sınıftan başka bir sınıfa değiştirebilirsiniz.
Aşağıdaki örnekte, ve String
türleri student
arasında dönüştürme yoktur, ancak her ikisi de türünden Object
türetilir, bu nedenle tüm atamalar geçerlidir.
' Assume student has already been defined as a class.
Dim testArray() As Object
' testArray is still an Object array at this point.
Dim names() As String = New String(3) {"Name0", "Name1", "Name2", "Name3"}
testArray = New student(3) {}
' testArray is now of type student().
testArray = names
' testArray is now a String array.
Dizinin Temel Türü
Başlangıçta belirli bir sınıfa sahip bir dizi bildirirseniz, temel alınan öğe türü bu sınıftır. Bunu daha sonra başka bir sınıfın dizisine ayarlarsanız, iki sınıf arasında bir dönüştürme olmalıdır.
Aşağıdaki örnekte bir students
student
dizidir. ile student
arasında String
dönüştürme olmadığından, son deyim başarısız olur.
Dim students() As student
Dim names() As String = New String(3) {"Name0", "Name1", "Name2", "Name3"}
students = New Student(3) {}
' The following statement fails at compile time.
students = names