这可能是有史以来最愚蠢的问题,但为什么这不起作用,
string abc = (" my string = {0} Your String = {1} " , myS, yourS);
当它像这样工作时,
Console.WriteLine(" my string = {0} Your String = {1} " , myS, yourS);
因为Console.WriteLine
在内部做了这样的事情:
string abc = string.Format(" my string = {0} Your String = {1} " , myS, yourS);
Console.WriteLine
内部使用复合格式,即String.Format。
你不分配这样的字符串。您可以使用Join
. 或者.Format
哪个将替换它们各自的值,这{0}
对你有用。{1}
.WriteLine
你没有打电话string.Format
。你不能指望 BCL 只理解什么{0}
和{1}
意思..
Console.WriteLine
是一种接受多个参数的方法。这就是为什么你可以有这样的语法,但是当你分配一个变量时,就像你在你的第一个例子中一样,你不能以同样的方式传递参数。如其他答案中所述,Console.WriteLine
使用该String.Format
方法。