我有一个通用方法定义。例如:MethodInfo
。getparameters()方法将给我两个parameterinfo对象,第一个是泛型的,第二个不是。如何让parameterinfo告诉我它是通用的?如果有限制呢?
最佳答案
检查ParameterType.IsGenericParameter
。
您可能还需要检查ContainsGenericParameters
,这对于MyMethod<T>(List<T> param)
之类的内容是正确的。(即使List<>
不是泛型参数)
如果IsGenericParameter
是真的,您还可以调用GetGenericParameterConstraints()
来获取接口或基类型约束,并且可以检查GenericParameterAttributes
(a[Flags]
enum)中的new()
、struct
或class
约束。