官术网_书友最值得收藏!

How it works...

Speaking of generic interfaces, we have seen that we can implement behavior on a generic class by implementing a generic interface. The power of using the generic class and generic interface is well illustrated earlier.

Having said that, we do believe that knowing when to use constraints is also important so that you can close down your generic classes to only accept specific types that you want. This ensures that you don't get any surprises when someone accidentally passes an integer to your generic class.

Finally, the constraints that you can use are as follows:

  • where T: struct: The type argument must be any value types
  • where T: class: The type argument must be any reference types
  • where T: new(): The type argument needs to have a parameterless constructor
  • where T: <base class name>: The type argument must derive from the given base class
  • where T: <T must derive from object>: T The type arg was must derive must derive from the object after the colon
  • where T: <interface>: The type argument must implement the interface specified
主站蜘蛛池模板: 凤城市| 彝良县| 和平县| 白银市| 连山| 和平县| 淄博市| 彭水| 尉氏县| 宽甸| 广德县| 台东市| 山阴县| 正阳县| 郴州市| 车致| 井冈山市| 雷山县| 英吉沙县| 吴桥县| 曲阳县| 页游| 确山县| 洛宁县| 吴江市| 饶河县| 娱乐| 温宿县| 黎平县| 南岸区| 肇庆市| 灵山县| 文昌市| 依安县| 务川| 桐梓县| 平江县| 彝良县| 翁牛特旗| 共和县| 江安县|