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. C#泛型鑄造
- 4. java - 鑄造泛型
- 5. 鑄造泛型和泛型類型
- 6. 泛型類型鑄造?
- 7. 泛型類型鑄造
- 8. Java泛型 - 錯誤鑄造泛型類
- 9. 列表泛型和鑄造
- 10. Java泛型和鑄造
- 11. Java泛型自動鑄造
- 12. F#鑄造和泛型
- 13. 泛型或對象鑄造?
- 14. Java泛型鑄造<?>
- 15. ViewModelBuilder泛型鑄造問題
- 16. 鑄造,泛型和子類型
- 17. Java泛型 - 類型鑄造問題
- 18. 鑄造泛型類型接口約束
- 19. 鑄造一個泛型類型中HAXE
- 20. 鑄造/拆箱泛型類型
- 21. Java泛型類型擦除鑄造
- 22. 使用泛型類型鑄造
- 23. 在c中鑄造泛型類型#
- 24. 鑄造泛型類型的非泛型方法
- 25. Java泛型在接口之間鑄造
- 26. 通過泛型參數鑄造
- 27. 是鑄造件壞事 - Java泛型
- 28. 鑄造集合的泛型隱含
- 29. 鑄造到泛型失敗在c#
- 30. 在循環中鑄造泛型Java 7
爲什麼你需要這樣做?你試圖解決什麼具體問題? – Bernard
這個問題在 –
之前被問過[Covariance and contravariance real world example]的可能重複(http://stackoverflow.com/questions/2662369/covariance-and-contravariance-real-world-example) –