如何让 String.Format 不解析 {0}

发布于 2024-09-11 07:30:35 字数 623 浏览 4 评论 0原文

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

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 将正确处理它。

我该怎么做?

I am writing a code generation tool that frequently will have lines like

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);

However the issue I am having is when I run in to a line like this.

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

I want the first {0} to turn in to whatever the value of columnName is but I want the seccond {0} to be left alone so the internal String.Format will process it correctly.

How do I do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

掩于岁月 2024-09-18 07:30:35

使用双花​​括号:

string result = string.Format("{{Ignored}} {{123}} {0}", 543);

Use double curly braces:

string result = string.Format("{{Ignored}} {{123}} {0}", 543);
空城旧梦 2024-09-18 07:30:35

可以使用两个大括号字符来转义大括号。 string.Format< 的文档/code>状态:

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

在你的例子中,那就是

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

Curly braces can be escaped by using two curly brace characters. The documentation of string.Format states:

To specify a single literal brace character in format, specify two leading or trailing brace characters; that is, "{{" or "}}".

In your example that would be

sp.AppendFormat("return String.Format(\"{0} = '{{0}}'\",cmbList.SelectedValue);", 
    columnName);
ゃ懵逼小萝莉 2024-09-18 07:30:35
sp.AppendFormat("return String.Format(\"{0} = '{{0}}'\", cmbList.SelectedValue);", columnName);
sp.AppendFormat("return String.Format(\"{0} = '{{0}}'\", cmbList.SelectedValue);", columnName);
装纯掩盖桑 2024-09-18 07:30:35

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

Use "{{0}}". This will result in the string "{0}"

拧巴小姐 2024-09-18 07:30:35
String.Format(\"{0} = '{{0}}'\",
String.Format(\"{0} = '{{0}}'\",
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文