Konstante mit Platzhalter

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Nofear23m.

    Konstante mit Platzhalter

    Hallo,

    ich muss mich aufgrund meiner Weiterbildung jetzt mit Visual Basic auseinander setzen.
    Meine Frage ist die, kann ich Konstanten mit Platzhalter versehen?

    Als ich damals mit Delphi programmiert habe, konnte ich meine konstante so definieren :

    const TEST = "Das ist Test Nr. %d";

    Im Programm konnte ich die konstante wie folgt verwenden :


    var
    num_Test = string;

    begin
    num_Test := format(TEST, 3)
    end;



    Kann man so etwas auch in VB realisieren?
    Nein.* Eine Konstante ist von Anfang an konstant. Sie wird AFAIK fest einkompiliert, also vom Compiler anders behandelt als Variablen. Ich glaub sogar sogar per quasi Textersetzung des Ausdrucks durch ihren Wert innerhalb des Codes.
    Wenn das gute Stück nicht konstant sein soll, mach keine Konstante draus.

    *Antwort aufgrund mangelnden besseren Wissens
    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.
    Es war mir damals sehr hilfreich, denn wenn man einen String hat, in der sich z.B. ein fortlaufende Nummer etc ändert, so muss man nicht jedesmal den String erneut schreiben.
    Habe es meist in Verbindung mit SQL Strings verwendet.

    Ich muss dazu sagen, bin absoluter Neuling auf dem Gebiet.
    Wodurch und wie wird denn die (Nicht)Variable TEST bei Dir in Delphi geändert? Also, durch welches Ereignis?
    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.
    Habe ja wie oben beschrieben es vorzugsweise für SQL verwendet. In Delphi konnte man mit dem Befehl format strings manipulieren die dementsprechende Platzhalter beinhalten. In Delphi war es völlig egal, ob es eine Variable oder eine Konstante war. Hatte gehofft, dass ich es in VB auch umsetzen kann.

    Als beispiel (Ich schon knapp 10 Jahre her, als ich damit zu tun hatte):

    const sql_INSERT= "INSERT INTO %s ('ID', 'Name', 'Vorname', ...) VALUES (%d, %s, %s, ...)";

    Query1.SQL.Clear;
    Query1.SQL.Add(format(sql_Insert), [Edit1.text, Edit2.text, Edit3.text])); // so in etwa sah die Manipulation des Strings aus
    Query1.ExecSQL;
    @gerCoder28 Wenn Du statt der Const eine Shared Variable verwendest, könnte Dein Plan funktionieren.
    Nur ist das eben eine Variable, keine Konstante.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo

    Verstehe ich da jetzt was Falsch. Warum so kompliziert?

    VB.NET-Quellcode

    1. Module Module1
    2. Private Const TEST As String = "Das ist ein Test Nr.: %d"
    3. Sub Main()
    4. Console.WriteLine($"Meine Konstante: {TEST}")
    5. Console.WriteLine($"Meine Konstante mit einer Nummer: {Replace(TEST, "%d", 15)}")
    6. Console.ReadKey()
    7. End Sub
    8. End Module




    oder noch besser

    VB.NET-Quellcode

    1. Module Module1
    2. Private Const TEST As String = "Das ist ein Test Nr.: {0} oder Nummer {1}"
    3. Sub Main()
    4. Console.WriteLine($"Meine Konstante: {TEST}")
    5. Console.WriteLine($"Meine Konstante mit einer Nummer: {String.Format(TEST, 8, 15)}")
    6. Console.ReadKey()
    7. End Sub
    8. End Module





    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##