zoukankan      html  css  js  c++  java
  • C# IFormattable 接口重写

     1  public class Racer : IComparable<Racer>, IFormattable
     2   {
     3     public int Id { get; private set; }
     4     public string FirstName { get; set; }
     5     public string LastName { get; set; }
     6     public string Country { get; set; }
     7     public int Wins { get; set; }
     8 
     9     public Racer(int id, string firstName, string lastName, string country = null, int wins = 0)
    10     {
    11       this.Id = id;
    12       this.FirstName = firstName;
    13       this.LastName = lastName;
    14       this.Country = country;
    15       this.Wins = wins;
    16     }
    17 
    18     public override string ToString()
    19     {
    20       return String.Format("{0} {1}", FirstName, LastName);
    21     }
    22 
    23     public string ToString(string format, IFormatProvider formatProvider)
    24     {
    25       if (format == null) format = "N";
    26       switch (format.ToUpper())
    27       {
    28         case "N": // name
    29           return ToString();
    30         case "F": // first name
    31           return FirstName;
    32         case "L": // last name
    33           return LastName;
    34         case "W": // Wins
    35           return String.Format("{0}, Wins: {1}", ToString(), Wins);
    36         case "C": // Country
    37           return String.Format("{0}, Country: {1}", ToString(), Country);
    38         case "A": // All
    39           return String.Format("{0}, {1} Wins: {2}", ToString(), Country, Wins);
    40         default:
    41           throw new FormatException(String.Format(formatProvider,
    42                 "Format {0} is not supported", format));
    43       }
    44     }
    45 
    46     public string ToString(string format)
    47     {
    48       return ToString(format, null);
    49     }
    50 
    51     public int CompareTo(Racer other)
    52     {
    53       int compare = this.LastName.CompareTo(other.LastName);
    54       if (compare == 0)
    55         return this.FirstName.CompareTo(other.FirstName);
    56       return compare;
    57     }
    58   }
  • 相关阅读:
    执行预定义命令
    利用jemalloc优化mysql
    ssh增加密匙登录
    vsftpd增加ssl安全验证
    利用脚本获取mysql的tps,qps等状态信息
    innodb_buffer_pool_size 大小建议
    linux多核cpu下的负载查看
    DDoS deflate+iptables防御轻量级ddos攻击
    CentOS通过日志反查入侵
    shell读取文件每行,并执行命令
  • 原文地址:https://www.cnblogs.com/farmer-y/p/5972709.html
Copyright © 2011-2022 走看看