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"));
}
}
}
上面是代碼的運轉成果。
