Aracılığıyla paylaş


Visual Basic'de Dize Temelleri

Veri String türü bir dizi karakteri temsil eder (her biri sırayla veri türünün bir örneğini Char temsil eder). Bu konu, Visual Basic'teki dizelerin temel kavramlarını tanıtır.

Dize Değişkenleri

Dizenin bir örneğine, bir dizi karakteri temsil eden bir değişmez değer atanabilir. Örneğin:

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

Bir String değişken, bir dizeyi değerlendiren tüm ifadeleri 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 String değişkene atanan tüm değişmez değerler tırnak işareti ("") içine alınmalıdır. Bu, bir dize içindeki tırnak işaretinin tırnak işaretiyle temsil edilemeyeceği anlamına gelir. Örneğin, aşağıdaki kod 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ığından bu kod bir hataya neden olur. Bu sorunu çözmek için Visual Basic, dize değişmez değerindeki iki tırnak işaretini dizede bir tırnak işareti olarak yorumlar. Aşağıdaki örnek, bir dizeye tırnak işareti eklemenin doğru yolunu gösterir:

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

Yukarıdaki örnekte, sözcüğün Look önündeki iki tırnak işareti dizede 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 ediyor.

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

Dim x = "hello  
world"  

Sonuçta elde edilen dize, dize değişmez değerinizde (vbcr, vbcrlf vb.) kullandığınız yeni satır dizilerini içerir. Artık eski geçici çözümü kullanmanız gerekmez:

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

Dizelerdeki Karakterler

Bir dize bir dizi Char değer olarak düşünülebilir ve String türü, dizilerin izin verdiği işlemelere benzeyen bir dize üzerinde birçok işleme gerçekleştirmenize olanak sağlayan yerleşik işlevlere sahiptir. .NET Framework'teki tüm diziler gibi bunlar da sıfır tabanlı dizilerdir. Bir dizedeki belirli bir karaktere, dizede göründüğü konuma göre bir karaktere erişmek için bir yol sağlayan özelliği aracılığıyla Chars başvurabilirsiniz. Örneğin:

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

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

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

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

Değişkeni myArray artık her biri 'den CharmyStringbir karakteri temsil eden bir değer dizisi içeriyor.

Dizelerin Değişmezliği

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

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

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

Daha açık belirtmek gerekirse, ilk satırda bir tür String örneği oluşturulur ve değeri This string is immutableverilir. Örneğin ikinci satırında yeni bir örnek oluşturulur ve değeri Or is it?verilir 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 bir String başvuru türüdür. Başvuru türündeki bir değişken 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 başvuru geçirilir. Bu nedenle, önceki örnekte değişkenin adı aynı kalır, ancak yeni değeri tutan sınıfın String yeni ve farklı bir örneğine işaret eder.

Ayrıca bkz.