IList和List解惑

缘由

        机房个人重构中添加了泛型以后,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)的理解就会清楚很多。



  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 22
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值