WEB开发网
开发学院软件开发C语言 c#扩展方法奇思妙用高级篇五:ToString(string fo... 阅读

c#扩展方法奇思妙用高级篇五:ToString(string format) 扩展

 2010-09-30 20:52:19 来源:WEB开发网   
核心提示:在.Net中,System.Object.ToString()是用得最多的方法之一,c#扩展方法奇思妙用高级篇五:ToString(string format) 扩展,ToString()方法在Object类中被定义为virtual,Object类给了它一个默认实现:1publicvirtualstringToStri

在.Net中,System.Object.ToString()是用得最多的方法之一,ToString()方法在Object类中被定义为virtual,Object类给了它一个默认实现:

1     public virtual string ToString()
2     {
3         return this.GetType().ToString();
4     }

.Net中原生的class或struct,如int,DateTime等都对它进行重写(override),以让它返回更有价值的值,而不是类型的名称。合理重写的ToString()方法中编程、调试中给我们很大方便。但终究一个类只有一个ToString()方法,不能满足我们多样化的需求,很多类都对ToString()进行了重载。如下:

1     string dateString = DateTime.Now.ToString("yyyy");  //2009
2     string intString = 10.ToString("d4");  //0010

int、DateTime都实现了ToString(string format)方法,极大方便了我们的使用。

对于我们自己定义的类型,我们也应该提供一个合理的ToString()重写,如果能够提供再提供一个ToString(string format),就会令我们后期的工作更加简单。试看以下类型: 

 1     public class People
 2     {
 3         private List<People> friends = new List<People>();
 4 
 5         public int Id { get; set; }
 6         public string Name { get; set; }
 7         public DateTime Brithday { get; set; }
 8         public People Son { get; set; }
 9         public People[] Friends { get { return friends.ToArray(); } }
10 
11         public void AddFriend(People newFriend)
12         {
13             if (friends.Contains(newFriend)) throw new ArgumentNullException("newFriend", "该朋友已添加");
14             else friends.Add(newFriend);
15         }
16         public override string ToString()
17         {
18             return string.Format("Id: {0}, Name: {1}", Id, Name);
19         }
20         c#扩展方法奇思妙用高级篇五:ToString(string format) 扩展
21     }

1 2 3 4 5 6  下一页

Tags:扩展 方法 奇思

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接