[C#] leeren String erstellen



  • Hallo Leute,

    auf die Gefahr hin, mich jetzt lächerlich zu machen, folgende Frage:

    Wie erstelle ich sauber einen leeren String in C#? Ich habe keinen CTor ohne Parameter gefunden, "" als Parameter gefällt ihm genauso wenig wie '' usw.
    Das einzige was ich bisher zum Kompilieren bekommen hab ist folgendes:

    String strAllProcesses = new String('l',0);
    

    Aber das kann doch wohl nicht die einzige Möglichkeit sein...



  • Hi das ist mir auch schon aufgefallen ich habe das sogemacht:

    string s = "";

    aber ich glaube nicht das das so gut ist, aber es geht.



  • ""
    

    ist doch die Instanz eines leeren Strings. Passt doch. Diese Instanz kannst du an alle deine schönen Referenzen zuweisen. Mir ist das Problem nicht ganz klar. 😕

    string myStringReference = "";
    

    Du brauchst dafür keinen Konstruktor, Strings sind bekanntlich immutable und alle Referenzen, die einen leeren String referenzieren sollen, können sich den ohne Probleme teilen.



  • hotblack schrieb:

    Hi das ist mir auch schon aufgefallen ich habe das sogemacht:

    string s = "";

    aber ich glaube nicht das das so gut ist, aber es geht.

    Warum soll das nicht gut sein? Dir ist klar, dass Strings Referenztypen sind und dass du hier einfach deine Referenz auf einen fertig konstruierten (leeren) String zeigen lässt oder?



  • Ah, ok. Vielen Dank.
    Bin noch etwas neu in der C#-Programmierung und dachte, man muss immer mit = new Type() arbeiten.



  • Normal schon, aber es gibt natürlich Literale, damit du nicht new int(9834) schreiben musst. 😃
    "" ist ein String-Literal in C#, so wie es ein const char* Literal in C++ ist.

    Du kannst btw. deshalb auch gleich Methoden aufrufen: string myLowerCaseString = "Hoi Alter!".ToLower();



  • ok, das ist gut zu wissen 😉



  • ich mache immer so:

    string s = string.Empty
    


  • Man könnte vermuten dEUs und ich sind eine Person nach diesen Worten:

    Ah, ok. Vielen Dank.
    Bin noch etwas neu in der C#-Programmierung und dachte, man muss immer mit = new Type() arbeiten.

    gilt exakt für mich 🙂 🙂


Anmelden zum Antworten