字符串参数占位符

3
        string str = "({{0}})";
        int i = 0;
        string str2 = string.Format(str, i++);
        string str3 = string.Format(str, i++);

为什么str3的值是{0}而不是{1}?


好的,我需要那些 ({1}),而不是 1。 - Sam
我认为你在问“为什么str3是({0})而不是(1)?” - Nikhil Agrawal
@NikhilAgrawal,不用了,谢谢! - Sam
1个回答

5

您逃避了花括号,因此它们没有特殊意义。来自文档

为了在格式中指定单个字面大括号字符,请指定两个前导或尾随大括号字符;也就是说,"{{" 或者 "}}"

您可以简化程序并仍然展示问题:

Console.WriteLine("{{0}}", 1);

输出:

{0}

在线查看演示效果: ideone


若要获得所需的输出结果,您需要使用{{后跟{0},最后加上}}:

string str = "({{{0}}})";

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接