C#中應用IFormattable完成自界說格局化字符串輸入示例。本站提示廣大學習愛好者:(C#中應用IFormattable完成自界說格局化字符串輸入示例)文章只能為提供參考,不一定能成為您想要的結果。以下是C#中應用IFormattable完成自界說格局化字符串輸入示例正文
IFormattable接口供給了ToString()辦法的界說,應用該辦法可以將對象的值依照指定的格局轉化成字符串的功效。
上面是ToString()辦法的完全界說。
string ToString( string format, IFormatProvider formatProvider )
個中:
第一個參數告知辦法須要何種格局的輸入,而第二個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")); } } }
上面是代碼的運轉成果。