Visual Basic'de Dize Temelleri

StringVeri türü bir dizi karakteri temsil eder (her biri, veri türünün bir örneğini sırasıyla temsil eder Char ). Bu konuda Visual Basic içindeki dizelerin temel kavramları tanıtılmaktadır.

Dize değişkenleri

Bir dizenin örneğine, bir dizi karakteri temsil eden bir sabit değer atanabilir. Örnek:

Dim MyString As String
MyString = "This is an example of the String data type"

Bir String değişken bir dize olarak değerlendirilen herhangi bir ifadeyi de kabul edebilir. Aşağıda örnekler gösterilmektedir:

    Dim OneString As String
    Dim TwoString As String
    OneString = "one, two, three, four, five"

    ' Evaluates to "two".
    TwoString = OneString.Substring(5, 3)
    OneString = "1"

    ' Evaluates to "11".
    TwoString = OneString & "1"

Bir değişkene atanan tüm sabit değer String tırnak işaretleri ("") içine alınmalıdır. Bu, bir dize içindeki tırnak işaretinin bir tırnak işaretiyle temsil edimeyeceği anlamına gelir. Örneğin, aşağıdaki kod bir derleyici hatasına neden olur:

Dim myString As String

' This line would cause an error.
' myString = "He said, "Look at this example!""

Derleyici ikinci tırnak işaretinden sonra dizeyi sonlandırdığından ve dizenin geri kalanı kod olarak yorumlandığı için bu kod hataya neden olur. bu sorunu çözmek için, dize sabit değerindeki iki tırnak işaretini dizedeki bir tırnak işareti olarak yorumlar Visual Basic. Aşağıdaki örnek, bir dizeye tırnak işareti eklemenin doğru yolunu göstermektedir:

' The value of myString is: He said, "Look at this example!"
myString = "He said, ""Look at this example!"""

Yukarıdaki örnekte, sözcükten önceki iki tırnak Look işareti dizedeki bir tırnak işaretine dönüşür. Satırın sonundaki üç tırnak işareti, dizedeki bir tırnak işaretini ve dize sonlandırma karakterini temsil eder.

Dize sabit değerleri birden çok satır içerebilir:

Dim x = "hello  
world"  

Elde edilen dize, dize sabit değerinde kullandığınız yeni satır dizilerini içerir (vbCr, vbCrLf, vb.). Artık eski geçici çözümü kullanmanız gerekmez:

Dim x = <xml><![CDATA[Hello  
World]]></xml>.Value  

Dizelerdeki karakterler

Bir dize bir dizi değer olarak düşünülebilir Char ve String tür, diziler tarafından izin verilen düzenlemelere benzer bir dizede birçok oluşturma gerçekleştirmenize olanak tanıyan yerleşik işlevlere sahiptir. .NET Framework tüm diziler gibi, bunlar sıfır tabanlı dizilerdir. Bir dizedeki belirli bir karaktere Chars , dizesinde göründüğü konuma göre erişmek için bir yol sağlayan özelliği aracılığıyla başvurabilirsiniz. Örnek:

    Dim myString As String = "ABCDE"
    Dim myChar As Char

    ' The value of myChar is "D".
    myChar = myString.Chars(3)

Yukarıdaki örnekte, Chars dizesinin özelliği dizedeki dördüncü karakteri döndürür D ve bunu öğesine atar myChar . Ayrıca özelliği aracılığıyla belirli bir dizenin uzunluğunu da alabilirsiniz Length . Bir dizede birden çok dizi türü işleyici gerçekleştirmeniz gerekiyorsa, Char dizenin işlevini kullanarak bir örnek dizisine dönüştürebilirsiniz ToCharArray . Örnek:

Dim myString As String = "abcdefghijklmnop"
Dim myArray As Char() = myString.ToCharArray

Değişkeni myArray artık Char , her biri öğesinden bir karakteri temsil eden bir değer dizisi içerir myString .

Dizelerin Imlebilirlik kullanılabilirliği

Bir dize sabittir, yani değeri oluşturulduktan sonra değiştirilemez. Ancak, bu, bir dize değişkenine birden fazla değer atanmasını engellemez. Aşağıdaki örneği inceleyin:

Dim myString As String = "This string is immutable"
myString = "Or is it?"

Burada bir dize değişkeni oluşturulur, bir değer verilir ve sonra değeri değiştirilir.

Özellikle, ilk satırda, türünün bir örneği String oluşturulur ve değeri verilir This string is immutable . Örneğin ikinci satırında yeni bir örnek oluşturulur ve değeri verilir Or is it? ve dize değişkeni, ilk örneğe başvurusunu atar ve yeni örneğe bir başvuru depolar.

Diğer iç veri türlerinden farklı olarak, String bir başvuru türüdür. Bir başvuru türü değişkeni bir işleve veya alt yordama bağımsız değişken olarak geçirildiğinde, dizenin gerçek değeri yerine verilerin depolandığı bellek adresine yönelik bir başvuru geçirilir. Bu nedenle, önceki örnekte, değişkenin adı aynı kalır, ancak String yeni değeri tutan sınıfının yeni ve farklı bir örneğine işaret eder.

Ayrıca bkz.