Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Het String gegevenstype vertegenwoordigt een reeks tekens. Elk teken vertegenwoordigt een exemplaar van het Char gegevenstype. In dit onderwerp worden de basisconcepten van tekenreeksen in Visual Basic geïntroduceerd.
Tekenreeksvariabelen
Aan een exemplaar van een tekenreeks kan een letterlijke waarde worden toegewezen die een reeks tekens vertegenwoordigt. Voorbeeld:
Dim MyString As String
MyString = "This is an example of the String data type"
Een String variabele kan ook elke expressie accepteren die resulteert in een tekenreeks. Voorbeelden worden hieronder weergegeven:
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"
Letterlijke gegevens die aan een String variabele zijn toegewezen, moeten tussen aanhalingstekens ("") worden geplaatst. Dit betekent dat een aanhalingsteken binnen een tekenreeks niet kan worden vertegenwoordigd door een aanhalingsteken. De volgende code veroorzaakt bijvoorbeeld een compilerfout:
Dim myString As String
' This line would cause an error.
' myString = "He said, "Look at this example!""
Deze code veroorzaakt een fout omdat de compiler de tekenreeks na het tweede aanhalingsteken beëindigt en de rest van de tekenreeks wordt geïnterpreteerd als code. Om dit probleem op te lossen, interpreteert Visual Basic twee aanhalingstekens in een letterlijke tekenreeks als één aanhalingsteken in de tekenreeks. In het volgende voorbeeld ziet u de juiste manier om een aanhalingsteken in een tekenreeks op te nemen:
' The value of myString is: He said, "Look at this example!"
myString = "He said, ""Look at this example!"""
In het voorgaande voorbeeld worden de twee aanhalingstekens voorafgaand aan het woord Look één aanhalingsteken in de tekenreeks. De drie aanhalingstekens aan het einde van de regel staan voor één aanhalingsteken in de tekenreeks en het teken voor het beëindigen van de tekenreeks.
Letterlijke tekenreeksen kunnen meerdere regels bevatten:
Dim x = "hello
world"
De resulterende tekenreeks bevat newlinereeksen die u hebt gebruikt in de letterlijke tekenreeks (vbcr, vbcrlf, enzovoort). U hoeft de oude tijdelijke oplossing niet meer te gebruiken:
Dim x = <xml><![CDATA[Hello
World]]></xml>.Value
Tekens in tekenreeksen
Een tekenreeks kan worden beschouwd als een reeks Char waarden en het String type heeft ingebouwde functies waarmee u veel bewerkingen kunt uitvoeren op een tekenreeks die lijkt op de bewerkingen die zijn toegestaan door matrices. Net als alle matrices in .NET Framework zijn dit op nul gebaseerde matrices. U kunt verwijzen naar een specifiek teken in een tekenreeks via de Chars eigenschap, die een manier biedt om toegang te krijgen tot een teken op basis van de positie waarin het in de tekenreeks wordt weergegeven. Voorbeeld:
Dim myString As String = "ABCDE"
Dim myChar As Char
' The value of myChar is "D".
myChar = myString.Chars(3)
In het bovenstaande voorbeeld retourneert de Chars eigenschap van de tekenreeks het vierde teken in de tekenreeks. Dit is D, en wijst deze toe aan myChar. U kunt ook de lengte van een bepaalde tekenreeks ophalen via de Length eigenschap. Als u meerdere bewerkingen van het arraytype op een tekenreeks wilt uitvoeren, kunt u deze converteren naar een array met Char-instanties met behulp van de ToCharArray functie van de tekenreeks. Voorbeeld:
Dim myString As String = "abcdefghijklmnop"
Dim myArray As Char() = myString.ToCharArray
De variabele myArray bevat nu een matrix met Char waarden, die elk een teken uit myStringvertegenwoordigen.
De onveranderbaarheid van strings
Een tekenreeks is onveranderbaar, wat betekent dat de waarde ervan niet kan worden gewijzigd zodra deze is gemaakt. Dit voorkomt echter niet dat u meer dan één waarde toewijst aan een tekenreeksvariabele. Bekijk het volgende voorbeeld:
Dim myString As String = "This string is immutable"
myString = "Or is it?"
Hier wordt een tekenreeksvariabele gemaakt, krijgt een waarde, en vervolgens wordt die waarde gewijzigd.
Meer specifiek, in de eerste regel wordt een exemplaar van het type String gemaakt en krijgt het de waarde This string is immutable. In de tweede regel van het voorbeeld wordt een nieuw exemplaar gemaakt en gegeven de waarde Or is it?. De tekenreeksvariabele negeert de verwijzing naar het eerste exemplaar en slaat een verwijzing op naar het nieuwe exemplaar.
In tegenstelling tot andere intrinsieke gegevenstypen is String dit een referentietype. Wanneer een variabele van het verwijzingstype wordt doorgegeven als argument aan een functie of subroutine, wordt een verwijzing naar het geheugenadres waar de gegevens worden opgeslagen, doorgegeven in plaats van de werkelijke waarde van de tekenreeks. In het vorige voorbeeld blijft de naam van de variabele hetzelfde, maar verwijst deze naar een nieuw en ander exemplaar van de String klasse, dat de nieuwe waarde bevat.