Lies in den Artikel rein und unten bekommst Du ein unschlagbares Angebot!
Wer unter Visual Basic oder VBA komplizierte Zeichenketten wie etwa Abfragen mit vielen UNION-Verknüpfungen zusammenstellen muss, die auch noch zur Laufzeit um variable Texte wie etwa Vergleichswerte ergänzt werden sollen, macht schnell Fehler. Mit Visual Basic 14 hat Microsoft die sogenannte String-Interpolation auch in Visual Basic eingeführt. Damit wird die Lesbarkeit von Zeichenketten durch den Einsatz von Platzhaltern in geschweiften Klammern stark verbessert. Dieser Artikel zeigt die Möglichkeiten der String-Interpolation auf.
Beispiele: Die Beispiele sind in der Datei StringinterpolationVB.linq, die Sie in LINQPad ausführen können (www.linqpad.net).
Wenn Sie unter VBA oder unter älteren Versionen von Visual Basic Zeichenketten mit dem Inhalt aus Variablen anreichern wollten, mussten Sie die Variablen durch entsprechende Textverkettungen hinzufügen. Unter VBA sieht das etwa wie folgt aus:
Dim strText As String strText = "Zwei" Debug.Print "Eins, " & strText & ", Drei"
Damit erhalten wir die folgende Ausgabe im Direktbereich:
Eins, Zwei, Drei
Wie man sich leicht vorstellen kann, werden derartige Konstrukte schnell unlesbar – vor allem, wenn es sich um SQL-Abfragen handelt, die noch einige Klammern und UNION-Schlüsselwörter enthalten. Für diesen Fall gibt es seit Visual Basic 14 eine neue Möglichkeit, die wesentlich übersichtlicher erscheint – die sogenannte String-Interpolation. Dabei gibt es zunächst folgende wichtige Regeln:
- Die Zeichenkette, in die Texte eingefügt werden sollen, enthält vor dem ersten Anführungszeichen das Dollar-Zeichen ($), also beispielsweise strText = $”…”
- Der einzufügende Text befindet sich in einer Variablen und diese wird vor dem Zugriff auf den Text gefüllt (zum Beispiel strText).
- Die Zeichenkette, in die der Text eingefügt werden soll, enthält an der Stelle der Einfügung den Namen der Variablen in geschweiften Klammern, also etwa {strText}.
Daraus resultiert unser erstes Beispiel:
Dim strText As String strText = "Zwei" Debug.Print ($"Eins, {strText}, Drei")
Diese Anweisungen liefern genau das gleiche Ergebnis wie das erste Beispiel von oben (Eins, Zwei, Drei).
Formatierungen von interpolierten Strings