Effective C# 学习笔记(五) 最好重载你所创建类的ToString()方法
2011-07-02 23:15 小郝(Kaibo Hao) 阅读(429) 评论(0) 编辑 收藏 举报通过重载ToString() 方法可以很好的将你的对象以格式化的形式展现给其他程序员
尤其在Windows form, Web Form, HTML 等界面展现时可以提供编程的灵活度
// supported formats:
// substitute n for name.
// substitute r for revenue
// substitute p for contact phone.
// Combos are supported: nr, np, npr, etc
// "G" is general.
string System.IFormattable.ToString(string format,
IFormatProvider formatProvider)
{
if (formatProvider != null)
{
ICustomFormatter fmt = formatProvider.GetFormat(
this.GetType()) as ICustomFormatter;
if (fmt != null)
return fmt.Format(format, this, formatProvider);
}
switch (format)
{
case "r":
return Revenue.ToString();
case "p":
return ContactPhone;
case "nr":
return string.Format("{0,20}, {1,10:C}",
Name, Revenue);
case "np":
return string.Format("{0,20}, {1,15}",
Name, ContactPhone);
case "pr":
return string.Format("{0,15}, {1,10:C}",
ContactPhone, Revenue);
case "pn":
return string.Format("{0,15}, {1,20}",
ContactPhone, Name);
case "rn":
return string.Format("{0,10:C}, {1,20}",
Revenue, Name);
case "rp":
return string.Format("{0,10:C}, {1,20}",
Revenue, ContactPhone);
case "nrp":
return string.Format("{0,20}, {1,10:C}, {2,15}",
Name, Revenue, ContactPhone);
case "npr":
return string.Format("{0,20}, {1,15}, {2,10:C}",
Name, ContactPhone, Revenue);
case "pnr":
return string.Format("{0,15}, {1,20}, {2,10:C}",
ContactPhone, Name, Revenue);
case "prn":
return string.Format("{0,15}, {1,10:C}, {2,15}",
ContactPhone, Revenue, Name);
case "rpn":
return string.Format("{0,10:C}, {1,15}, {2,20}",
Revenue, ContactPhone, Name);
case "rnp":
return string.Format("{0,10:C}, {1,20}, {2,15}",
Revenue, Name, ContactPhone);
case "n":
case "G":
default:
return Name;
}
}
出处:http://www.cnblogs.com/haokaibo/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。