對泛型中的類型T有可能強制實施一些限制嗎?.net:如何對泛型實施一些限制?
1
A
回答
4
是的,你可以在T上施加一些限制。約束條件在where
子句中引入。檢查here
where T: struct
type參數必須是值類型。可以指定除Nullable以外的任何值類型。有關更多信息,請參閱使用可空類型(C#編程指南)。
where T: class
type參數必須是引用類型;這也適用於任何類,接口,委託或數組類型。
where T : new()
type參數必須具有公共無參數構造函數。與其他約束一起使用時,必須最後指定new()約束。
where T : <base class name>
type參數必須是或從指定的基類派生。
where T : <interface name>
type參數必須是或實現指定的接口。可以指定多個接口約束。約束接口也可以是通用的。
where T : U
對於T提供的類型參數必須是或從U.
提供的參數導出
2
請參閱通用參數constraints。在創建您自己的泛型類型和方法時,您可以使用約束來應用有關類型參數的一些規則,例如它們支持所需的接口或具有默認構造函數。
3
相關問題
- 1. Java泛型:實施例對SO
- 2. 如何實施限制條款MySQL
- 3. 如何限制泛型類參數到某些類
- 4. YQL XSLT實施限制
- 5. Java:如何擴展一個使用泛型但限制類型的對象
- 6. Java泛型限制接口
- 7. 用泛型限制容器
- 8. Java泛型:多重限制
- 9. 如何爲泛型對實現equals?
- 10. 未強制實施的泛型的手寫體保護裝置
- 11. .NET string.IsNullOrWhiteSpace實施
- 12. 如何最好地實施泛型約束條件?
- 13. 一些實施鏈表 - C++
- 14. Java泛型和反射|如何實例化一個泛型類
- 15. 如何定義基本類型的泛型類型限制?
- 16. Scala類型:如何限制子類的泛型類型?
- 17. 定義對可空基本類型的泛型類型限制
- 18. 與.NET泛型
- 19. 註冊一個通用接口的泛型實施StructureMap
- 20. 如何強制實施限制的JSON模式
- 21. 限制泛型類型參數System.Enum
- 22. 限制類型參數在C#泛型
- 23. 限制C#中的泛型類型
- 24. 無法限制泛型類型
- 25. 泛型類型限制在Visual Basic
- 26. 如何定義一個限制只有一定類型的泛型類?
- 27. 如何在.NET中保存對泛型類型的引用?
- 28. C#泛型如何實現?
- 29. 泛型:如何實現:
- 30. 如何限制在泛型類中允許爲「T」的類型?
這沒有意義。你想執行什麼樣的限制?希望執行在編譯時或運行時完成? – Gabe 2011-01-11 08:31:03
他指的是我相信的泛型類型約束。 – 2011-01-11 08:37:16