C ++ CString entspricht in C #

8

Was ist% C# für MFC CString ?

    
Thomas Anderson 10.11.2010, 06:29
quelle

3 Antworten

10

Wahrscheinlich System.String . Aber um mehr nützliche Informationen zu liefern:

  • System.String Instanzen sind unveränderbar. Die Verkettung / Teilzeichenkette / etc erzeugt tatsächlich neue Zeichenkettenobjekte, daher ist die Verwendung einer Zeichenketteninstanz als Puffer zum Aufbau der Ausgabe eine wirklich schlechte Idee, falls Sie das tun würden. Denken Sie an System.String als const CString .
  • System.Text.StringBuilder wird zum Erstellen und Bearbeiten von Zeichenfolgeninhalten verwendet. Es hat eine .ToString() -Methode, die Sie aufrufen können, um den Inhalt in eine richtige Zeichenfolge umzuwandeln.
  • Sie können char[] als eine Art String-Builder-Alternative verwenden, wenn Sie genau wissen, wie lang eine generierte Zeichenfolge sein wird. Trotzdem können Sie new StringBuilder(length) verwenden, um eine Standard-Anfangskapazität anzugeben. Sie können dann die entsprechenden Append-Methoden verwenden, ohne eine Indexvariable zu behalten. ( StringBuilder macht das für Sie.)

Wie Billy in der anderen Antwort auf diese Frage erwähnt hat, hat C # das Schlüsselwort string , das im Wesentlichen eine Verknüpfung zum System.String -Typ ist. Beide sind vollständig äquivalent, obwohl die meisten Programmierer LARTEN, wenn Sie das Großbuchstabe verwenden.

    
cdhowie 10.11.2010, 06:32
quelle
2

Sie können versuchen, String zu verwenden, und sehen, ob es hilft.

    
Adrian Fâciu 10.11.2010 06:31
quelle
2

Weißt du, CString ist nicht gerade ein leuchtendes Beispiel für das richtige OO-Design. MS fügte ihm so lange Mitgliedsfunktionen hinzu, bis es wie ein Schweizer Taschenmesser aussah ... und trotzdem wichtige Funktionen fehlten.

Alles, was Sie mit einem CString tun können, kann besser mit dem unveränderlichen 'System.String' und einer Anzahl von Support-Klassen erledigt werden.

    
Pontus Gagge 10.11.2010 06:36
quelle

Tags und Links