我有许多MethodBase
实例引用不同的开放通用方法(expected
),例如代表以下方法:
T Foo<T>(T nevermind, T other);
T Foo<T>(string nevermind, T other);
我有一个MethodBase
引用封闭方法的单个实例,该方法实际上被称为 ( actual
),例如:
int Foo<int>(string nevermind, int other);
我如何以编程方式检查actual
封闭方法是否可以匹配任何给定的expected
开放方法,尤其是在考虑所有泛型陷阱和复杂性时?
具体来说,我想确定给定封闭方法的expected
列表中的正确项目是而不是第二个。actual
T Foo<T>(string nevermind, T other);
此外,对于MethodBase
对应于 double Foo<double>(double something, string other)
我希望没有匹配的结果。
遍历候选方法并检查每个参数expected
是否可以从相应actual
参数分配是一种好方法吗?如果是这样,这是最简单的方法吗?我是否需要考虑任何特殊情况以不匹配不会根据 .NET 中的方法重载解析规则选择的方法?