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   }
  • 相关阅读:
    关于在组件GIS开发中使用Python的一点补充说明
    shell环境变量以及set,env,export的区别
    快速配置 Samba 将 Linux 目录映射为 Windows 驱动器
    Expect 教程中文版
    rpm 包管理
    .bash_profile和.bashrc的什么区别
    grep 零宽断言
    自动化测试
    dialog shell下的gui设计 代替繁杂libncurses编程
    x11 gtk qt gnome kde 之间的区别和联系
  • 原文地址:https://www.cnblogs.com/farmer-y/p/5972709.html
Copyright © 2011-2022 走看看