zoukankan      html  css  js  c++  java
  • Effective C# 学习笔记(五) 最好重载你所创建类的ToString()方法

    通过重载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;

    }

    }

     

  • 相关阅读:
    关于android表单多字段布局的一些思考
    thrift 试用
    关于带角度的箭头
    同步和异步
    storm各组件基本概念
    AWK使用实例
    Hotspot虚拟机目录结构
    大数据生态
    代码生成器 架构提取工具tqdemo
    [源码]C# to SQL 的翻译器.net 1.1版
  • 原文地址:https://www.cnblogs.com/haokaibo/p/2096532.html
Copyright © 2011-2022 走看看