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 IntegerLong değer türü söz konusu olduğundan bir diziyi diziye, hatta diziye Object 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 Stringtürleri student arasında dönüştürme yoktur, ancak her ikisi de türünden Objecttü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 studentsstudent dizidir. ile studentarası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  

Ayrıca bkz.