2016-03-30 20 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

を見てください'と' {1} ' – schlonzo

答えて

4

フォーマット文字列のインデックスは0から始まります。

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

だから、第二と第三のフォーマット引数(Formatコールへの第三及び第四の引数)にアクセスしようとしています。

しかし、2つの引数のみを指定しました。したがって、フォーマット文字列を次のように変更してください:

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

これはうまくいくはずです。彼らはC#6で私たちにstring interpolationを与えたこと


注意、今あなたがこれを行うことができます:

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)); 

は{0} 'あなたが使用する必要がC# string.Format Method