Mögliche Duplizieren:
how to add { in String Format c#Wie zu bewahren "{0}" nach zwei string.Format ruft
Wenn ich immer die gleiche Sache bin Umschreiben, bin ich früher schreibe das, was ich ein String-Muster davon nenne.
Sagen wir, ich möchte SQL-Injection tun ORM Funktionalität zu erweitern ...
protected static string FULLTEXTPATTERN = "EXISTS CONTAINSTABLE([{0}],*,'\"{1}\"') WHERE [key] = {0}.id;
Und ich habe in der Regel den Namen der Tabelle und den Wert, den ich in einem string.format (FULLTEXTPATTERN kombinieren, ...) und alles ist gut.
Stellen Sie sich vor, ich muss das in zwei Zeit tun. Zuerst injiziere ich den Tabellennamen, dann den gesuchten Wert. Also möchte ich etwas schreiben wie:
protected static string FULLTEXTPATTERN = "EXISTS CONTAINSTABLE([{0}],*,'\"{{0}}/*Something that returns {0} after string.format*/\"') WHERE [key] = {0}.id;
...
var PartialPattern= string.fomat(FULLTEXTPATTERN, "TableX");
//PartialPattern = "EXISTS CONTAINSTABLE([TableX],*,'\"{0}\"') WHERE [key] = {0}.id"
...
//later in the code
...
var sqlStatement = string.format(PartialPattern,"Pitming");
//sqlStatement = "EXISTS CONTAINSTABLE([TableX],*,'\"Pitming\"') WHERE [key] = {0}.id"
Gibt es eine Möglichkeit, es zu tun?
Verwenden Platzhalter. Wenn Ihre Bibliothek sie nicht unterstützt, wechseln Sie. (Tabellennamen können nicht in Platzhaltern gebunden werden, sodass diese manuell eingefügt werden müssen.) Dieser eingebettete Nachfolger "{0}" sieht wie ein Albtraum aus. Betrachte: 'EXISTS CONTAINSTABLE ({Tabelle}, *, @ Wert) WHERE ...' –
Verwandte Frage: [Wie füge ich {im String-Format C#] hinzu (http://stackoverflow.com/questions/9084309/how-to -add-in-string-format-c-sharp/9084352 # 9084352) –
Fragen Sie nur, wie Sie die literale Zeichenfolge '{0}' umgehen können? Wenn ja, haben Sie es bereits beantwortet - Sie verdoppeln die Klammern "{{0}}". Kannst du deine Frage klarer stellen? –