zoukankan      html  css  js  c++  java
  • IList与List区别

    在写后台程序时,用的比较多的是IList<T>和List<T>, 各自声明如下:

    这里用String类举例,

    (1)IList<String> IList = new List<String>();

    (2)List<String> List = new List<String>();

    初次使用,感觉上好像(1)(2)差不多,对它们的差别很模糊,有点困惑,后上网查相关资料以及自己在VS2010下调试,小结如下:


    1. IList是泛型接口,其在数据元中的声明如下

        public interface IList<T> : ICollection<T>, IEnumerable<T>, IEnumerable

       {

           //...

       }

    2.List是一个泛型类,它实现了接口IList<T>,其在数据元中的声明如下

    public class List<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable

    {

        //...

    3. 到这里应该可以较容易的看出,

       IList<String> IList = new List<String>();

      是定义一个IList<String>接口类型变量,且这个接口是由List类来实现的,

      而 List<String> List = new List<String>();

      是定义一个List<String>的泛型类变量,跟声明一个普通类class没多大区别,

     好像还是不是很清楚具体区别在哪,在VS2010智能感知下就清楚了,你会发现变量IList只能调用接口IList中定义的方法以及接口IList从继承链上方继承来的方法,变量IList无法调用List类中的方法;

     而变量List除了能调用IList接口中定义的方法外,还可以调用其自身定义的方法。

  • 相关阅读:
    sql 修改表名、列名、列类型
    .Net WinForm下配置Log4Net(总结不输出原因)
    ubuntu20.04 搭建门罗币节点
    python2 和 python3里StringIO和BytesIO的区别
    java.lang.IllegalArgumentException: java.lang.ClassCastException
    iphoneX安全边界
    ios中禁用回弹效果
    将nodejs回调方法变为promise
    实现trim方法
    flex实现三个div上中下布局
  • 原文地址:https://www.cnblogs.com/notebook2011/p/2489159.html
Copyright © 2011-2022 走看看