2016-03-30 16 views
0

String.Format hakkında bilgi almaya çalışıyorum ama bir FormatException atmaya devam ediyor.FormatException in String.Format

Beni hataya yönlendiren var mı?

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

göz at {0} 've' {1} ' – schlonzo

cevap

4

Biçim dizesindeki göstergeler 0 tabanlı.

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

Yani ikinci ve üçüncü biçim argümanları ( Format çağrısına üçüncü ve dördüncü argüman) ulaşmaya çalışıyorsunuz.

Ancak yalnızca iki bağımsız değişken belirttiniz. Yani sizin biçim dizesi değiştirin:

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

ve çalışması gerekir. onlar, C# 6 ile bize string interpolation verdi


Not böylece artık bunu yapabilirsiniz:

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

Sen `kullanmaya gerek C# string.Format Method