C#中提供了一个IFormattable接口以便实现类自定义格式化字符串。IFormattable有一个方法方法:ToString.定义如下:
String ToString( String format, IFormatProvider formatProvider )
在实现类中可以根据需要这样做:
public class Racer:IFormattable{
//some fratures....
//这个是Object中的方法 public override string ToString() { return FirstName + " " + LastName; }
public string ToString(string format) { return ToString(format, null); }
//这个是IFormattable接口的方法
public string ToString(string format, IFormatProvider formatProvider) { switch (format) { case null: case "N": return ToString(); case "F": return FirstName; case "L": return LastName; case "A": return String.Format("{0} {1}, {2}; starts: {3}, wins: {4}", FirstName, LastName, Country, Starts, Wins); default: throw new FormatException(String.Format( "Format {0} not supported", format)); } }
}
在调用时:
Racer r = new Racer("Nino", "Farina", "Italy", 33, 5);
Console.WriteLine("{0:A}", r);
输出这种格式:
Nino Farina, Italy ; starts: 33, wins: 5