【发布时间】:2012-02-18 12:50:22
【问题描述】:
基本上我有以下几点:
public static bool IsBetween<T>(this T value, T a, T b)
where T : IComparable
{
...
}
public static bool IsBetween<T>(this T value, T a, T b)
where T : IComparable<T>
{
...
}
问题是我不能这样做,因为即使约束不同,您也不能拥有具有相同签名的成员。但是,无法声明约束是IComparable 或IComparable<T>。所以,我不确定除了挑选一个并继续使用它之外还能做什么。而且,无论我选择哪一个,我都会输掉另一个,因为它们是独立的并且不会相互继承(这是有道理的)。
我在这里遗漏了什么,有办法同时使用两者,还是我必须选择一个(可能是通用版本)?
【问题讨论】:
标签: c# generics extension-methods icomparable generic-constraints