c#中的格式字符串错误

时间:2013-01-25 07:17:39

标签: c#

以下行给出错误:

 Console.WriteLine("Order:{0},\n Placed:{1},\nshipped:{2},\nTo address:{3} ,{4}, {5}\n\n" + orderid, orderdate, shipdate, shipname, shipaddr, shipcity);

它显示错误:

  

(索引(从零开始)必须大于或等于零,且小于参数列表的大小。)

帮我解决此错误。我知道发生这个错误是因为提供的占位符大于提供的变量。

4 个答案:

答案 0 :(得分:4)

我猜你想要:

Console.WriteLine("Order:{0},\n Placed:{1},\nshipped:{2},\nTo address:{3} ,{4}, {5}\n\n", orderid, orderdate, shipdate, shipname, shipaddr, shipcity);

注意+不存在。

答案 1 :(得分:3)

Console.WriteLine("Order:{0},\n Placed:{1},\nshipped:{2},\nTo address:{3} ,{4}, {5}\n\n",orderid, orderdate, shipdate, shipname, shipaddr, shipcity);

应该解决问题。

答案 2 :(得分:1)

在您的第一个参数之前,您有一个+而不是,。校正:

Console.WriteLine("Order:{0},\n Placed:{1},\nshipped:{2},\nTo address:{3} ,{4}, {5}\n\n", orderid, orderdate, shipdate, shipname, shipaddr, shipcity);

因此,该方法仅识别5个参数,而不是6个。

答案 3 :(得分:1)

为什么格式字符串末尾有加号?当格式字符串需要6时,这会导致params为5。

更改如下:

Console.WriteLine("Order:{0},\n Placed:{1},\nshipped:{2},\nTo address:{3} ,{4}, {5}\n\n", orderid, orderdate, shipdate, shipname, shipaddr, shipcity);