0

这可能是有史以来最愚蠢的问题,但为什么这不起作用,

string abc = (" my string = {0}  Your String = {1} " , myS, yourS);

当它像这样工作时,

Console.WriteLine(" my string = {0}  Your String = {1} " , myS, yourS);
4

5 回答 5

8

因为Console.WriteLine在内部做了这样的事情:

string abc = string.Format(" my string = {0}  Your String = {1} " , myS, yourS);
于 2013-06-24T10:06:50.930 回答
2

Console.WriteLine内部使用复合格式,即String.Format

于 2013-06-24T10:06:59.190 回答
2

你不分配这样的字符串。您可以使用Join. 或者.Format哪个将替换它们各自的值,这{0}对你有用。{1}.WriteLine

于 2013-06-24T10:07:33.257 回答
0

你没有打电话string.Format。你不能指望 BCL 只理解什么{0}{1}意思..

于 2013-06-24T10:07:06.010 回答
0

Console.WriteLine是一种接受多个参数的方法。这就是为什么你可以有这样的语法,但是当你分配一个变量时,就像你在你的第一个例子中一样,你不能以同样的方式传递参数。如其他答案中所述,Console.WriteLine使用该String.Format方法。

于 2013-06-24T10:08:40.077 回答