C#中使用IFormattable实现自定义格式化字符串输出示例_C#教程-查字典教程网
C#中使用IFormattable实现自定义格式化字符串输出示例
C#中使用IFormattable实现自定义格式化字符串输出示例
发布时间:2016-12-28 来源:查字典编辑
摘要:IFormattable接口提供了ToString()方法的定义,使用该方法可以将对象的值按照指定的格式转化成字符串的功能。下面是ToStr...

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")); } } }

下面是代码的运行结果。

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新C#教程学习
    热门C#教程学习
    编程开发子分类