• 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;

    }

    }

     

  • 相关阅读:
    344. 反转字符串
    942. 增减字符串匹配
    CGO内部机制
    CGO函数调用
    CGO类型转换
    CGO基础
    Go net/http代理
    GO-中间件(Middleware )
    Go如何巧妙使用runtime.SetFinalizer
    ARM基础
  • 原文地址:https://www.cnblogs.com/haokaibo/p/2096532.html
Copyright © 2020-2023  润新知