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接口中定义的方法外,还可以调用其自身定义的方法。

  • 相关阅读:
    Code::blocks 使用c++ long double类型出错
    数论四大定理
    线性基
    win7 下强制删除文件
    C++数组指针的引用
    学习方法
    MySQL的ON DUPLICATE KEY UPDATE用法
    MVCC
    RabbitMQ中的Connection 和 Channel
    myisam和innodb的比较
  • 原文地址:https://www.cnblogs.com/notebook2011/p/2489159.html
Copyright © 2011-2022 走看看