类型转换不像4.0那样在3.5中工作

Omu*_*Omu 2 .net c# .net-4.0 .net-3.5

public class Entity
{
    public int Id {get;set;}
}

public class Foo : Entity
{
   public string Name {get;set;}
}


//foos is an IEnumerable<Foo> with List<Foo> value

foos as IEnumerable<Entity> //works in .net 4.0, doesn't work in 3.5, 
Run Code Online (Sandbox Code Playgroud)

如何在3.5中获得类似的行为

JoD*_*oDG 7

该结构依赖于.net 4.0中引入的协方差/逆变.您将无法在早期版本上使用此功能.

这是一篇很好的文章:http://blogs.msdn.com/b/csharpfaq/archive/2010/02/16/covariance-and-contravariance-faq.aspx