我试图用Roslyn确定两个方法签名是否相等(忽略参数顺序)。当方法包含通用参数时,它变得有些不重要。
我想将AGenericMethod
和AnotherGenericMethod
检测为具有等效签名:
public void AGenericMethod<X>(X someX, int someInt) where X : IEnumerable<int>
{
//...
}
public void AnotherGenericMethod<Y>(Y someY, int someInt) where Y : IEnumerable<int>
{
//...
}
对于与X和Y相对应的.Equals()
,似乎ITypeParameterSymbols
将返回false。
Roslyn中是否有任何现有功能可用于将ITypeParameterSymbols
归类为&#39;等效的&#39; (在具有同等约束的意义上)?如果不是,那么实现这个的最佳方法是什么(考虑到约束本身可能是类型参数)?