.NET4.0对IEnumerable接口的修改示例

2.0中的定义:

     public  interface IEnumerable<T> : IEnumerable
    {
        IEnumerator<T> GetEnumerator();
    }

4.0中的定义:

     public  interface IEnumerable< out T> : IEnumerable
    {
        IEnumerator<T> GetEnumerator();
    }

可以看到4.0中增加了对协变的支持。

可以在两个版本试下, 下面的语句在2.0下会报错。

    List<SubClass> subarr =  new List<SubClass>();
    IEnumerable<IParent> parentarr = subarr;

你可能感兴趣的:(.net)