【原】淺析IList與List的區別
List和IList是.net開發中經常遇到的兩種類型,用法上經常會讓初學者摸不到頭腦,下面簡要的分析一下這兩種類型的區別
1、IList<T>是接口,繼承自ICollection<T>和IEnumerable<T>,是所有泛型列表的基接口,其中規定了一些方法聲明。
List繼承了IList并實現了IList規定的那些方法,同時也實現了許多自定義的新方法。
2、既然IList是接口,就不能用new關鍵字去直接實例化,但是可以用多態的方式去實例化,也就是用其子類(List)去實例化。
IList<string> Ilist1=new List<string>() (簡記作①)
你可能會有疑問,這樣作與 List<string> list1=new List<string>() (簡記作②) 有什么區別呢?
當然是有區別的:
首先,①創建了一個list,但是這個list只能用到IList接口中規定那些方法,因為這些方法在List類型中實現了的,所以可以用。
②也創建了一個list,這個list可以用List類型中實現的所有方法(當然包括IList規定的那些)
其次,推薦使用哪個呢? 答:①
因為在面向對象的思想里,推薦使用接口,可以實現松耦合,有很好的擴展性,功能與具體實現很好的分離開,有利于系統的維護與重構。
作者:Tony zhao
本文出處:http://www.rzrgm.cn/ytaozhao 本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。



浙公網安備 33010602011771號