2

我正在编写一个代码生成工具,它经常会有类似的行

StringBuilder sp = new Stringbuilder();
sp.AppendFormat("        public {0}TextColumn()\n", className);
sp.AppendLine("        {"
sp.AppendLine("            Column = new DataGridViewTextBoxColumn();");
sp.AppendFormat("            Column.DataPropertyName = \"{0}\";\n", columnName);

但是我遇到的问题是当我遇到这样的线路时。

sp.AppendFormat("return String.Format(\"{0} = '{0}'\", cmbList.SelectedValue);", columnName);

我希望第一个{0}转入 columnName 的任何值,但我希望第二个保持不变{0},以便内部String.Format正确处理它。

我该怎么做呢?

4

5 回答 5

13

使用双花​​括号:

string result = string.Format("{{Ignored}} {{123}} {0}", 543);
于 2010-07-23T15:53:55.817 回答
7

花括号可以通过使用两个花括号字符进行转义。国家的文件string.Format

要在格式中指定单个文字大括号字符,请指定两个前导或尾随大括号字符;即“{{”或“}}”。

在你的例子中,那将是

sp.AppendFormat("return String.Format(\"{0} = '{{0}}'\",cmbList.SelectedValue);", 
    columnName);
于 2010-07-23T15:54:17.773 回答
3
sp.AppendFormat("return String.Format(\"{0} = '{{0}}'\", cmbList.SelectedValue);", columnName);
于 2010-07-23T15:54:18.407 回答
3

使用“{{0}}”。这将产生字符串“{0}”

于 2010-07-23T15:54:59.507 回答
1
String.Format(\"{0} = '{{0}}'\",
于 2010-07-23T15:54:43.280 回答