- 为什么第一次调用Foo时不能编译?从对象派生的字符串。
- 如果我可以将列表转换为对象并将其编译,那么为什么编译器不会自己完成它?
1
A
回答
4
0
- 泛型是严格的,您不能将派生类型的集合分配给超类型的集合。您必须提供用于实例化集合的确切类型。
因为它不知道你想要做什么。同样的原因,下面的行不会编译:
string s = new object();
要强制用户“不安全”类型转换会向编译器提供太多的自由。
+0
在.NET 4.0中引入协变后,上面的语句在新框架中工作吗? – RSB
0
你wan't查找co-variance and contra-variance。
它是.NET 4.0的新功能
相关问题
- 1. 隐式转换 - 强类型datatable datatable?
- 2. 明显的类型转换VS隐式类型转换
- 3. 隐式类型转换?
- 4. 隐式转换类型
- 5. 隐式类型转换
- 6. 隐式转换泛型类
- 7. 显/隐式类型转换C++
- 8. Func和不能隐式转换类型
- 9. 继承和隐式类型转换
- 10. 斯卡拉隐式类型转换和==
- 11. 泛型:类型不能隐式转换
- 12. 泛型类型的隐式转换?
- 13. 值类类型的隐式转换?
- 14. 强制Java对Scala显式类型进行未知类型的转换类型
- 15. Scala集合类型之间的隐式转换
- 16. 集合如何使用元素类型的隐式转换?
- 17. 显式和隐投与泛型类型
- 18. 转换集合类型来
- 19. 在Scala中隐式转换泛型和非泛型子类型
- 20. Scala隐式类型使用类型参数转换类
- 21. 斯卡拉类型转换使用隐式 - >强制类型检查
- 22. 1067:将类型值的隐式强制转换为不相关的类型flash.display:DisplayObject
- 23. Dapper强类型集合类型
- 24. 不能隐式转换类型LINQ
- 25. 无法隐式转换类型错误
- 26. 不能隐式转换类型时groupby
- 27. 错误:“不能隐式转换类型”
- 28. 无法隐式转换类型“System.Linq.IQueryable
- 29. 斯卡拉 - 隐式类型转换
- 30. 无法隐式转换类型错误
您使用的是什么版本的.NET? – Oded