这样做是为了测试:
string text1 = "Letter";
string text2 = "Number";
System.Console.Write("{0}" + " {0}" + " {0}", text1, " {0}", text2);
Run Code Online (Sandbox Code Playgroud)
结果输出:
Letter Letter Letter
Run Code Online (Sandbox Code Playgroud)
这不应该是输出吗?
Letter Letter Letter Number
Run Code Online (Sandbox Code Playgroud)
这样做:
System.Console.Write("{0}" + " {0}" + " {0}", text1, " {1}", text2);
Run Code Online (Sandbox Code Playgroud)
也导致此输出:
Letter Letter Letter
Run Code Online (Sandbox Code Playgroud)
没有输出是正确的,只有提供给此Console.Write()方法重载的第一个文本值是可能包含占位符的格式.
您使用的实际格式"{0}" + " {0}" + " {0}"在您的情况下(有效评估"{0} {0} {0}").您的其余呼叫现在作为单独的参数提供:
text1 作为第一个参数,用于替换所有出现的 {0}" {0}" 作为第二个参数,用于替换所有的出现 {1}text2 作为第三个参数,用于替换所有的出现 {2}由于实际格式文本只包含占位符,因此{0}您将永远不会在结果文本中看到其他提供的参数.