Q
铸造泛型
4
A
回答
4
是的,但只有当您使用C#4(或更高版本)和IInterface
时声明为IInterface<out T>
。
这被称为泛型协方差,你可以在Bart de Smet找到更多关于MSDN的信息,或者这个(更正式但更容易理解的)introduction。
1
在C# 4 via Covariance中这是可能的,前提是您正确装饰了您的使用场景(即:IInterface<out IAnother>
)。
请注意,这样做有潜在的副作用,具体取决于您的接口使用情况。我建议您阅读Variance in Generic Interfaces了解更多细节,但主要问题是可能导致自己陷入可能导致运行时错误的情况,因为您放弃了某种类型的安全措施。
1
看看C#4.0中的协变性和逆变性
相关问题
- 1. 铸造泛型
- 2. 铸造泛型
- 3. 泛型铸造
- 4. C#泛型铸造
- 5. 铸造泛型和泛型类型
- 6. 泛型类型铸造
- 7. Java泛型 - 错误铸造泛型类
- 8. 列表泛型和铸造
- 9. Java泛型自动铸造
- 10. 泛型或对象铸造?
- 11. F#铸造和泛型
- 12. 在c中铸造泛型类型#
- 13. 铸造,泛型和子类型
- 14. 铸造一个泛型类型中HAXE
- 15. Java泛型 - 类型铸造问题
- 16. 使用泛型类型铸造
- 17. 铸造泛型类型的非泛型方法
- 18. 铸造到泛型失败在c#
- 19. 在循环中铸造泛型Java 7
- 20. 继承,泛型和Java中的铸造
- 21. 通过泛型参数铸造
- 22. C#连铸泛型
- 23. C#铸造泛型类型,以正确的类型
- 24. 铸造Java对象泛型类型与已知类型参数
- 25. 在Java中的类型铸造/铸造
- 26. 列表不同泛型类型,动态铸造
- 27. C#泛型铸造型儿童向母公司
- 28. C#3.0铸造的接口泛型类型
- 29. 铸造到少衍生类型和处理泛型
- 30. 在LINQ查询中铸造泛型类型
为什么你需要这样做?你试图解决什么具体问题? – Bernard
这个问题在 –
之前被问过[Covariance and contravariance real world example]的可能重复(http://stackoverflow.com/questions/2662369/covariance-and-contravariance-real-world-example) –