码迷,mamicode.com
首页 > 其他好文 > 详细

IList和List解惑

时间:2015-05-18 09:16:22      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:

缘由

        机房个人重构中添加了泛型以后,IList和List就分不清了。把IList改为List以后,仍然可以正常运行,没有什么区别。在理解IList和List时,对接口再次有了理解。下面先说一下我对接口的再次理解,然后,再介绍IList和List。   

接口

        以前虽然做过接口和抽象类的比较,一直在找他们的不同,忘记了他们的相似。这也可能因为自己对抽象类的理解也不深刻。抽象类不允许实例化,同样接口也是;抽象类之所以叫抽象类是因为含有抽象方法,同样接口中的方法是抽象方法;因为是抽象的,所以,不能实例化。

        接口是抽象的,只能定义方法,没有方法体;只能通过一个具体的类去实现其中的方法体。

        例如:

        定义接口,大家可以注意到接口中的方法,没有方法体

<span style="font-size:18px;">Public Interface IUser
    Function CheckExistsUser(ByVal user As Entity.UserInfoEntity) As IList(Of Entity.UserInfoEntity)
End Interface</span>

        实现接口,sqlUserDAL类实现接口方法,写出具体方法

<span style="font-size:18px;">Public Class sqlUserDAL : Implements IDAL.IUser

    Public Function CheckExistsUser(user As UserInfoEntity) As IList(Of UserInfoEntity) Implements IUser.CheckExistsUser
    '方法体
    End Function
End Class  </span>

        用关键字Interface定义接口,通过关键字Implements来实现接口。

IList(Of T)和List(Of T)

        IList(Of T) 接口
                IList(Of T)表示可按照索引单独访问的一组对象。
                IList(Of T) 是泛型接口;是 ICollection(Of T) 泛型接口的子代;并且是所有泛型列表的基接口。

        List(Of T) 类
                表示可通过索引访问的对象的强类型列表。 提供用于对列表进行搜索、排序和操作的方法。
                List(Of T) 类是 ArrayList 类的泛型等效类。 该类使用大小可按需动态增加的数组实现 IList(Of T) 泛型接口。
        两者关系

        IList(Of T)是接口,List(Of T)是实现IList(Of T)接口的泛型类。
        IList(Of T)接口定义了一些方法,这些方法要自己去实现。List已经实现了这些方法。

<span style="font-size:18px;">IList(Of T) IList1=New List(Of T)() '创建一个基于接口IList的的队形实例,只是这个接口是由List实现的
List(Of T) List1 =New List(Of T)() '创建一个List,而且需要使用List的功能进行相关操作</span>
        这两句都是实例化了List(Of T),也就说他们的操作是没有区别;只是用于保存这个操作的返回类型不同而已;

技术分享


        感受:自己学习时有点粗枝大叶,一些基本知识都理解的不是很清楚。这次通过对IList(Of T)和List(Of T)的理解时,体会到一点,假如之前我对接口理解的再深刻一点的话,这次对IList(Of T)和List(Of T)的理解就会清楚很多。



IList和List解惑

标签:

原文地址:http://blog.csdn.net/zhangmeihong2/article/details/45790797

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!