首页 > 代码库 > C# IFormattable 接口重写
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 }
C# IFormattable 接口重写
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。