Wie können Klammern in Verwendung entwertet werden string.Format
.
Zum Beispiel:
String val = "1,2,3"
String.Format(" foo {{0}}", val);
In diesem Beispiel wird keine Ausnahme ausgelöst, sondern die Zeichenfolge ausgegeben foo {0}
.
Gibt es eine Möglichkeit, den Klammern zu entkommen?
Antworten:
Damit Sie ausgeben können
foo {1, 2, 3}
, müssen Sie Folgendes tun:Um ein von
{
Ihnen verwendetes{{
und ein von}
Ihnen verwendetes auszugeben}}
.oder Jetzt können Sie auch eine solche C # -String-Interpolation verwenden (Funktion in C # 6.0 verfügbar).
Escape-Klammern: String-Interpolation $ ("") . Es ist eine neue Funktion in C # 6.0
quelle
$"a = {{ {a} }}"
)string v = $" foo {{{t}}}";
. Wenn Sie andere Charaktere haben, denen Sie entkommen können, die nicht lockig sind, können Sie die $ @ combostring v2 = $@"\foo {{{t}}}\";
Ja zur Ausgabe
{
instring.Format
Sie haben es so zu entkommen{{
Also das
wird ausgegeben
"foo {1,2,3}"
.ABER Sie müssen über einen Designfehler in C # Bescheid wissen. Wenn Sie die obige Logik anwenden, gehen Sie davon aus, dass der folgende Code {24.00} druckt.
Dies gibt jedoch {N} aus. Dies liegt daran, dass C # Escape-Sequenzen analysiert und Zeichen formatiert. Um im obigen Fall den gewünschten Wert zu erhalten, müssen Sie diesen stattdessen verwenden.
Referenzartikel FAQ zu String.Format gottach und String-Formatierung
quelle
string.Format( "{{{0}}}", i.ToString("N") );
der für manche besser lesbar sein könnte.Fast dort! Die Escape-Sequenz für eine Zahnspange ist
{{
oder}}
so für Ihr Beispiel, das Sie verwenden würden:quelle
Sie können doppelte offene Klammern und doppelte schließende Klammern verwenden, die nur eine Klammer auf Ihrer Seite anzeigen.
quelle
Das Entkommen von geschweiften Klammern UND die Verwendung der Zeichenfolgeninterpolation stellen eine interessante Herausforderung dar. Sie müssen vierfache Klammern verwenden , um das Parsen und Parsen der Zeichenfolgeninterpolation zu
string.format
umgehen.Escape-Klammern: String-Interpolation $ ("") und String.Format
quelle
Kam hier auf der Suche nach dem Erstellen von JSON-Zeichenfolgen ad-hoc (ohne eine Klasse / ein Objekt zu serialisieren) in C #. Mit anderen Worten, wie Sie geschweifte Klammern und Anführungszeichen vermeiden können, während Sie interpolierte Zeichenfolgen in C # und " wörtliche Zeichenfolgenliterale " (Zeichenfolgen in doppelten Anführungszeichen mit dem Präfix '@') verwenden, wie ...
quelle
quelle
oder Sie können eine solche C # -String-Interpolation verwenden (Funktion in C # 6.0 verfügbar)
quelle
Escape-Klammern: String-Interpolation $ (""):
Jetzt können Sie auch eine solche C # -String-Interpolation verwenden (Funktion in C # 6.0 verfügbar).
quelle
Mein Ziel:
Ich musste den Wert
"{CR}{LF}"
einerstring
Variablen zuweisendelimiter
.Code c #:
Hinweis: Um Sonderzeichen normalerweise zu umgehen, müssen Sie verwenden. Verwenden Sie zum Öffnen der geschweiften Klammer {eine zusätzliche wie {{. Verwenden Sie zum Schließen der geschweiften Klammer} eine zusätzliche}}.
quelle