IFormattable接口提供了ToString()方法的定義,使用該方法可以將對象的值按照指定的格式轉化成字符串的功能。
下面是ToString()方法的完整定義。
其中:
第一個參數告訴方法需要何種格式的輸出,而第二個IFormatProvider的參數則允許類型的使用者自定義格式化方法,在本文實現的ToString()方法中,并沒有使用到第二個參數。關于IFormatProvider接口請閱讀文章《ICustomFormatter及IFormatProvider接口用法揭秘》,本文不做過多說明。下面是完整的實例代碼。
using System;using System.Globalization;namespace GreetingExample{  public class Greeting : IFormattable  {    private string name;    public Greeting(string name)    {      this.name = name;    }    public override string ToString()    {      return this.ToString("CN",CultureInfo.CurrentCulture);    }    public string ToString(string format)    {      return this.ToString(format,CultureInfo.CurrentCulture);    }    public string ToString(string format, IFormatProvider provider)    {      if (String.IsNullOrEmpty(format)) format = "CN";      if (provider == null) provider = CultureInfo.CurrentCulture;      switch (format.ToUpper())      {        case "CN":        case "TW":          return "你好," + name.ToString();        case "US":        case "GB":          return "Hello," + name.ToString();        case "JP":          return "こんにちは," + name.ToString();        default:          throw new FormatException(String.Format("The {0} format string is not supported.", format));      }    }  }}using System;namespace GreetingExample{  class Program  {    static void Main(string[] args)    {      Greeting greeting = new Greeting("三五月兒");      Console.WriteLine(greeting.ToString("CN"));      Console.WriteLine(greeting.ToString("US"));      Console.WriteLine(greeting.ToString("JP"));    }  }}下面是代碼的運行結果。

新聞熱點
疑難解答