2016-03-30 64 views
0

我想了解String.Format,但它一直拋出FormatException。String.Format中的FormatException

任何人都可以指出我的錯誤嗎?

static void Main(string[] args) 
{ 
    var d = new DateTime(2016,5,10); 
    var p = "Trumph"; 

    Console.WriteLine(String.Format("Mr. {1} will be elected as president on {2}", p, d)); 
    Console.ReadKey(); 
} 
+1

您需要使用'{0} '和'{1}' – schlonzo

回答

4

格式字符串中的索引是從0開始的。

Console.WriteLine(String.Format("Mr. {1} will be elected as president on {2}", p, d)); 

所以,你試圖訪問第二和第三格式參數(第三個和第四個參數Format調用)。

但是你只指定了兩個參數。因此,將您的格式字符串更改爲:

Console.WriteLine(String.Format("Mr. {0} will be elected as president on {1}", p, d)); 

它應該工作。


注意,他們給了我們string interpolation與C#6,所以現在你可以這樣做:

Console.WriteLine($"Mr. {p} will be elected as president on {d}"); 
0
Console.WriteLine(String.Format("Mr. {0} will be elected as president on {1}", p, d)); 

看一看C# string.Format Method