泛型定义中的 where
子句指定对用作泛型类型、方法、委托或本地函数中类型参数的参数类型的约束。 约束可指定接口、基类或要求泛型类型为引用、值或非托管类型。 它们声明类型参数必须具备的功能。
作为约束使用的类型必须是接口、非密封类或类型参数。
可以指定泛型是class ,struct ,System.Enum ,System.Delegate,System.MulticastDelegate 等
举例说明一下, 我们现在定义一个FunTest<T>函数 ,我们通过where对T添加约束
指定T 是一个类 ,并且是 在 ITransformer 接口下的类 (逗号后可以不写)
public static void FunTest<T>() where T : class, ITransformer { }