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;

    }

    }

     

  • 相关阅读:
    15.RDD 创建内幕解析
    14.spark RDD解密
    我的读书笔记-《异类》
    深入解析单例线程安全问题的迷思
    一个关于数学归纳法的悖论问题-续
    一个关于数学归纳法的悖论问题
    简易解说拉格朗日对偶(Lagrange duality)(转载)
    unity3d NavMeshAgent 寻路画线/画路径
    unity3d easytouch计算摇杆旋转角度以及摇杆八方向控制角色
    unity3d 摄像机跟随角色时被物体遮挡解决方案
  • 原文地址:https://www.cnblogs.com/haokaibo/p/2096532.html
Copyright © 2011-2022 走看看