.Net关于几种格式化字符串
来源:互联网 发布:淘宝购枪暗语 编辑:程序博客网 时间:2024/05/16 10:28
在.Net中将一个对象格式化为字符串有以下方式:
1,String.Format(string format, params object[] args)以及几种变形
这种格式化要求args能实现了IFormattable接口
2,string Format(IFormatProvider provider, string format, params object[] args)
这种格式化要求提供一个自定义的格式化功能
3,Object.ToString()
众所周知的,调用了虚方法
下面例子可以显示这几种格式化功能的具体使用时机与实现方法
加入我们要格式化手机号码,众所周知,手机号码是11位的连续整数,但是有时候需要用139-2212-0987的格式进行显示,下面具体的代码:
首先是3个类,公共完成格式化功能:
class ModilePhone:IFormattable { public string phone = "15115226678"; string IFormattable.ToString(string format, IFormatProvider formatProvider) { if (formatProvider == null) formatProvider = System.Globalization.CultureInfo.CurrentCulture; if (format == "G") return string.Format("From IFormattable[G]:{0}", phone); return phone; } public override string ToString() { return "From ToString();"; } } class ModilePhoneFormatter : ICustomFormatter { string ICustomFormatter.Format(string format, object arg, IFormatProvider formatProvider) { ModilePhone tmp = arg as ModilePhone; if (tmp == null) throw new ArgumentException(string.Format("ModilePhoneFormatter不支持{0}类型的",arg.GetType())); if (format == "NNN-NNNN-NNNN") return string.Format("From ICustomFormatter:{0}{1}{2}-{3}{4}{5}{6}-{7}{8}{9}{10}", tmp.phone[0], tmp.phone[1], tmp.phone[2], tmp.phone[3], tmp.phone[4], tmp.phone[5], tmp.phone[6], tmp.phone[7], tmp.phone[8], tmp.phone[9], tmp.phone[10] ); return ""; } } class ModilePhoneFormatProvider : IFormatProvider { object IFormatProvider.GetFormat(Type formatType) { if (formatType == typeof(ICustomFormatter)) return new ModilePhoneFormatter(); else return null; } }
下面是调用的例子:
ModilePhone tmp = new ModilePhone(); string str0 = string.Format(new ModilePhoneFormatProvider(), "{0:NNN-NNNN-NNNN}", tmp); //str0 : From ICustomFormatter:151-1522-6678 string str1 = string.Format("{0:G}", tmp); //str1 : From IFormattable[G]:15115226678 string str2 = tmp.ToString(); //str2 : //From ToString();
- .Net关于几种格式化字符串
- 几种格式化字符串
- .NET CORE GUID字符串的几种格式化
- ASP.NET 格式化字符串
- .NET Framework格式化字符串
- ASP.NET 格式化字符串
- asp.net 字符串格式化
- .net字符串截取/格式化
- ASP.NET 格式化字符串
- 关于日期格式化字符串
- C# 格式化字符串几种方式总结 String.Format
- C# 格式化字符串几种方式总结 String.Format
- C# 格式化字符串几种方式总结 String.Format
- Python 3 格式化字符串的几种方法
- .net中格式化数字的几种方法
- asp.net中时间格式化的几种方法
- asp.net中时间格式化的几种方法
- .net时间格式化显示的几种方式
- 初始化,申明变量
- android 签名
- CentOS6.2自动挂载NTFS分区
- poj 1029 False coin
- VFW(Video For Windows)--AVI开发
- .Net关于几种格式化字符串
- 进程间通信--FIFO命名管道
- 第二周C++实验报告(4)
- android中获取google-calendar的过程sax错误地解决方法
- 怎么找到适合自己的工作
- Android SDK 实例代码分析---Accelerometer Play(一)
- 互斥锁、条件变量、信号量
- 第三周C++实验报告(2)
- Android布局文件中的属性含义