所以我有,比如说,这种方法:
public ICollection<String> doSomething() { }
目前,我正在尝试检查方法的返回类型是否为 ICollection 类型。但是,在 C# 中,我必须在进行检查时传入一个泛型。所以我不能说,“方法是 ICollection”。
问题是我不想在检查时限制泛型的类型。在 Java 中,我可以只使用通配符,但在 C# 中我不能这样做。我曾想过尝试使用 Type.GetGenericParamterContraints() 并尝试将它的第一个结果粘贴在 ICollection 的通用约束中进行检查,但这也没有用。有人有什么想法吗?
isCollection(MethodInfo method){
Type[] ret = method.ReturnType.GetGenericParametersContraint();
Type a = ret[0];
return method.ReturnType is ICollection<a>;
}
编辑:添加了我尝试过的内容。