C#中使用IFormattable實現(xiàn)自定義格式化字符串輸出示例
IFormattable接口提供了ToString()方法的定義,使用該方法可以將對象的值按照指定的格式轉(zhuǎn)化成字符串的功能。
下面是ToString()方法的完整定義。
string ToString( string format, IFormatProvider formatProvider )
其中:
第一個參數(shù)告訴方法需要何種格式的輸出,而第二個IFormatProvider的參數(shù)則允許類型的使用者自定義格式化方法,在本文實現(xiàn)的ToString()方法中,并沒有使用到第二個參數(shù)。關(guān)于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"));
}
}
}
下面是代碼的運行結(jié)果。

相關(guān)文章
C#實現(xiàn)HTTP訪問類HttpHelper的示例詳解
在項目開發(fā)過程中,我們經(jīng)常會訪問第三方接口,如我們需要接入的第三方接口是Web API,這時候我們就需要使用HttpHelper調(diào)用遠程接口了。本文為大家介紹了C#實現(xiàn)HTTP訪問類HttpHelper的示例代碼,需要的可以參考一下2022-09-09
C# SerialPort實現(xiàn)串口通訊的代碼詳解
在.NET平臺下創(chuàng)建C#串口通信程序,.NET 2.0提供了串口通信的功能,其命名空間是System.IO.Ports,這個新的框架不但可以訪問計算機上的串口,還可以和串口設(shè)備進行通信,本文給大家介紹了C# SerialPort實現(xiàn)串口通訊,需要的朋友可以參考下2024-06-06
C# RGB圖像和灰度圖像互轉(zhuǎn)的實現(xiàn)
在我們的圖像類型教程中定義了RGB顏色模型和灰度格式,本文主要介紹了C# RGB圖像和灰度圖像互轉(zhuǎn)的實現(xiàn),文中通過代碼介紹的非常清楚,具有一定的參考價值,感興趣的可以了解一下2023-08-08
C#動態(tài)對象(dynamic)詳解(實現(xiàn)方法和屬性的動態(tài))
下面小編就為大家?guī)硪黄狢#動態(tài)對象(dynamic)詳解(實現(xiàn)方法和屬性的動態(tài))。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02

