c# - 类型转换在 3.5 和 4.0 中不起作用

标签 c# .net .net-3.5 .net-4.0

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, 

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

最佳答案

此构造依赖于 .net 4.0 中引入的协变/逆变。您将无法在早期版本上使用它。

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

关于c# - 类型转换在 3.5 和 4.0 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5363823/

相关文章:

c# - 如何将项目集合绑定(bind)到复选框列表框?

c# - .NET 中 PadLeft() 和 PadRight() 的 R 等价物是什么?

c# - 如何在 .NET 中不使用乘法运算符实现乘法

c# - Visual Studio 2017 Collapsing 还删除了未使用的使用

c# - 为什么我不能以相同的方式初始化对象(不使用 ref)?

.net - 缓冲参数在 Dapper dot net 中起什么作用?

.net - XmlDocument.Validate 不检查无效的命名空间

c# - 确保只有一个应用程序实例

C# system.management 未加载

具有自动完成/自动过滤器的 WPF 组合框?