Aracılığıyla paylaş


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. Integer türündeki bir diziyi Long türündeki bir diziye, hatta Object türündeki bir diziye dönüştüremezsiniz çünkü en az bir değer türü söz konusu. 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 bir genişletme veya daraltma dönüşümünün mümkün olması gerekir. Bir String dizisi ile System.Attribute'den türetilen bir sınıfın dizisi arasında yapılan bir dönüştürme girişimi, bu gereksinimi karşılayamayan bir örnektir. 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ülmesinin genişletme veya daraltma durumuna bağlı olarak genişletme veya daraltma olarak gerçekleşir. Daha fazla bilgi için bkz. Genişletme ve Daraltma Dönüştürmeleri.

Nesne Dizisine Dönüştürme

Bir Object dizisini başlatmadan bildirdiğinizde, öğe türü başlatılmamış olduğu sürece Object şeklinde kalır. 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, student ve String türleri arasında dönüştürme yoktur, ancak her ikisi de Object türünden 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, students bir student dizisidir. Arasında String ile student hiçbir dönüştürme olmadığından, son ifade 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 bakınız