String-Interpolation

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    String-Interpolation

    Ich habe mir das Buch "Einstieg in Visual Basic mit Visual Studio 2022" von Thomas Theis gekauft und gehofft neues über VB.net zu erfahren.
    Stattdessen wurde ich mit Erklärungen überhäuft, die mir schwer fallen zu verstehen.
    Beispiel:

    Quote

    1.7.2 String-Interpolation Mithilfe der String-Interpolation können Sie Werte von Variablen, Ergebnisse von Berechnungen, Eigenschaften von Objekten und komplexe Ausdrücke unmittelbar und in übersichtlicher Form in Zeichenketten einbetten, siehe Abbildung 1.19. Das geschieht hier nach der Betätigung des zweiten Buttons:

    Private Sub CmdAnzeigen2_Click(...) Handles ...
    Dim x = 42
    LblAnzeige.Text = $"Wert: {x}"
    EndSub
    Listing 1.6 Projekt »GrundlagenAusgaben«,
    zweiter Button
    Wird einer Variablen bereits bei ihrer Deklaration ein Wert zugewiesen, ergibt sich ihr Datentyp implizit aus dem Datentyp des Werts.
    Die Zahl 42 ist ganzzahlig, daher ist x vom Typ Integer.
    Die String-Interpolation wird mit dem Operator $ vor der Zeichenkette eingeleitet.
    Die gewünschten Variablen werden jeweils in geschweifte Klammern gesetzt.




    _____________________
    Ausgaben _ [] x

    Wert 42

    Anzeigen1
    Anzeigen 2
    ______________________

    Abbildung 1.19 String-Interpolation

    Unquote

    Das ganze Buch ist voll mit dieser String-Interpolation (Normaler Text als String ist so gut wie nicht vorhanden) sowie weiterer so
    intelligenten Erklärungen, die mir schwer fallen zu verstehen. Ich frage mich, was Herr Theis unter "Anfänger" versteht.
    Könnte mir jemand diese String-Interpolation in normal deutsch übersetzen?
    Mir ist das zu hoch oder habe ich den Anschluss verpasst
    UPLam
    Willkommen im Forum.

    Arbeiten mit normalem String:

    VB.NET-Quellcode

    1. Dim Stringvariable As String = "Ein Text"

    Mit Einbau weiterer Daten:

    VB.NET-Quellcode

    1. Dim X As Integer = 99
    2. Dim Stringvariable As String = "Meine Variable namens X hat den Wert " & X.ToString

    Vereinfachung dank Stringinterpolation (beachte das $ zum String-Anfang!):

    VB.NET-Quellcode

    1. Dim X As Integer = 99
    2. Dim Stringvariable As String = $"Meine Variable namens X hat den Wert {X}"

    Man erspart sich also das explizite Umwandeln der 99 in einen Text und die Zeile wird kürzer.

    Der Teil mit

    UPLam schrieb:

    Wird einer Variablen bereits bei ihrer Deklaration ein Wert zugewiesen, ergibt sich ihr Datentyp implizit aus dem Datentyp des Werts.
    hat nix mit Stringinterpolation zu tun, sondern das gehört zum Thema Typableitung.
    Man kann schreiben

    VB.NET-Quellcode

    1. Dim XYZ As Integer = 666
    Also den Datentyp von XYZ explizit angeben. Oder man lässt es den Compiler selbst ermitteln:

    VB.NET-Quellcode

    1. Dim XYZ = 666
    Dann schlussfolgert er eben aus dem Anfangswert (hier der 666), welchen Datentyp XYZ haben soll.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Vielen Dank. Sehr gut erklärt.

    a) Stringinterpolation:
    Für mich ungewohnt zu lesen. ich glaube ich - als alter Knacker, der immer nur mal wieder aus Spaß programmiert - werde bei der alten Schreibweise bleiben,
    obwohl ich durchaus gern dazu lerne.

    b) Typableitung:
    Erinnert mich an das erste Basic oder an später, als es den "Variant" gab.
    Doch dann habe ich gelernt, dass man zu Variablen den Datentyp immer explizit angeben sollte,
    dazu möglichst noch mit einen Präfix, welche deren Datentyp bezeichnet. (int = Integer, str=String) - wobei VB.net nun plötzlich den ersten Buchstaben in groß verlangt.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „UPLam“ ()

    Variant war - dachte ich - alles Mögliche.
    Hier wird nur die Angabe des Typs weggelassen, aber er steht dennoch fest. Daher geht sowas

    VB.NET-Quellcode

    1. Dim X = 1
    2. X = 2

    aber sowas nicht:

    VB.NET-Quellcode

    1. Dim x = 1
    2. x = ""

    Das mit den Präfixen ist Dank VS nicht mehr nötig oder besser: es ist out-of-date (Ungarische Notation). VS zeigt durch das Mouse-Hovern an, von welchem Typ ein Objekt ist.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.