这可能是有史以来最愚蠢的问题,但为什么这不起作用,
string abc = (" my string = {0} Your String = {1} " , myS, yourS);
当它像这样工作时,
Console.WriteLine(" my string = {0} Your String = {1} " , myS, yourS);
答案 0 :(得分:8)
因为Console.WriteLine
内部做了类似的事情:
string abc = string.Format(" my string = {0} Your String = {1} " , myS, yourS);
答案 1 :(得分:2)
Console.WriteLine
在内部使用Composite Formatting,即String.Format。
答案 2 :(得分:2)
您不会指定类似的字符串。您可以使用Join
。或.Format
会将{0}
和{1}
替换为.WriteLine
为您所做的各自值。
答案 3 :(得分:0)
您没有致电string.Format
。您不能指望BCL只了解{0}
和{1}
的含义......
答案 4 :(得分:0)
Console.WriteLine
是一个方法,它接受多个参数。这就是为什么你可以使用这样的语法,但是当你在第一个例子中分配变量时,你不能以相同的方式传递参数。如其他答案中所述,Console.WriteLine
使用String.Format
方法。