Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az String adattípus karaktersorozatot jelöl. Minden karakter az adattípus egy példányát Char jelöli. Ez a témakör a Visual Basic sztringjeinek alapfogalmait ismerteti.
Sztringváltozók
Egy sztringpéldányhoz olyan literális érték rendelhető, amely karaktersorozatot jelöl. Például:
Dim MyString As String
MyString = "This is an example of the String data type"
A String változó bármely olyan kifejezést is elfogadhat, amely sztringként értékelődik. Példák az alábbiakra:
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"
A változóhoz String rendelt literálokat idézőjelek közé kell foglalni (""). Ez azt jelenti, hogy egy karakterláncon belüli idézőjel nem használható idézőjelként. A következő kód például fordítóhibát okoz:
Dim myString As String
' This line would cause an error.
' myString = "He said, "Look at this example!""
Ez a kód hibát okoz, mert a fordító a második idézőjel után leállítja a sztringet, a sztring fennmaradó részét pedig kódként értelmezi. A probléma megoldásához a Visual Basic a string literálban szereplő két idézőjelet egy idézőjelként értelmezi a sztringben. Az alábbi példa bemutatja, hogyan lehet idézőjelet felvenni egy sztringbe:
' The value of myString is: He said, "Look at this example!"
myString = "He said, ""Look at this example!"""
Az előző példában a szó Look előtti két idézőjel egy idézőjel lesz a karakterláncban. A sor végén található három idézőjel egy idézőjelet jelöl a karakterláncban, és a karakterlánc végződési karakterét.
A sztringkonstansok több sort is tartalmazhatnak:
Dim x = "hello
world"
Az eredményül kapott sztring a sztringkonstansban használt újsoros sorozatokat tartalmazza (vbcr, vbcrlf stb.). A régi kerülő megoldást már nem kell használnia:
Dim x = <xml><![CDATA[Hello
World]]></xml>.Value
Karakterek karakterláncokban
A sztringek értéksorozatnak Char tekinthetők, és a String típus beépített függvényekkel rendelkezik, amelyek lehetővé teszik, hogy sok olyan módosítást hajthasson végre egy sztringen, amely hasonlít a tömbök által engedélyezett manipulációkra. A .NET-keretrendszerben található összes tömbhöz hasonlóan ezek is nulla alapú tömbök. A tulajdonságon keresztül Chars hivatkozhat egy adott karakterre egy sztringben, amely lehetővé teszi a karakter elérését a sztringben megjelenő pozíció alapján. Például:
Dim myString As String = "ABCDE"
Dim myChar As Char
' The value of myChar is "D".
myChar = myString.Chars(3)
A fenti példában a Chars karakterlánc tulajdonsága a karakterlánc negyedik karakterét adja vissza, amely a D karakter, és azt hozzárendeli a myChar-hez. Egy adott sztring hosszát is lekérheti a Length tulajdonságon keresztül. Ha több tömb típusú műveletet kell végrehajtania egy karakterláncon, a karakterlánc Char függvényével átalakíthatja azt ToCharArray példányok tömbjévé. Például:
Dim myString As String = "abcdefghijklmnop"
Dim myArray As Char() = myString.ToCharArray
A változó myArray most egy értéktömböt Char tartalmaz, amelyek mindegyike egy karaktert myStringjelöl.
A sztringek nem módosíthatók
A sztring nem módosítható, ami azt jelenti, hogy az értéke nem módosítható a létrehozása után. Ez azonban nem akadályozza meg, hogy egynél több értéket rendeljen egy sztringváltozóhoz. Vegye figyelembe a következő példát:
Dim myString As String = "This string is immutable"
myString = "Or is it?"
Itt létrejön egy sztringváltozó, amely egy értéket ad meg, majd az értéke megváltozik.
Pontosabban, az első sorban létrejön egy típuspéldány String , és megadja az értéket This string is immutable. A példa második sorában létrejön egy új példány, és megadja az értéket Or is it?, a sztringváltozó pedig elveti az első példányra mutató hivatkozást, és az új példányra mutató hivatkozást tárol.
A többi belső adattípustól String eltérően ez egy referenciatípus. Ha egy hivatkozástípusú változó argumentumként egy függvénynek vagy alrutinnak ad át, a rendszer a sztring tényleges értéke helyett arra a memóriacímre mutató hivatkozást ad át, amelyben az adatokat tárolják. Az előző példában tehát a változó neve változatlan marad, de az osztály egy új és eltérő példányára String mutat, amely az új értéket tartalmazza.