我正在写一个函数来比较两个IComparable类型的值,如果不相等就抛出。基本上,重新生成断言。是的,我知道我在重新发明轮子。public static void IsEqual<T>(T Value1, T Value2) where T : IComparable<T> if (0 !我也愿意换成不同于IComparable的界面,起初我认为这是最适合这项工作的界面,但现在意识到我可能错了。
where T : IComparable<T>
我知道IComparable和IComparable<T>在一般情况下有很大的区别,参见,但是在这个搜索方法中,它不会有任何不同,或者会吗?public static int Search<T>(List<T> a, T target) where T : IComparable for (int i = 0; i < a.Countreturn i; return -1;与之相比:
public static int Search<T>(List&
我用iComparable接口创建了一个Customer类。public class Customer: IComparable<Customer> public int ID {set; get;}
public string Name {最初,当我试图在没有iComparable接口的情况下对其进行排序时,它给了我无效的操作错误。下面的问题是,为什么我不能在没有iComparable接口的customer类中创建一个“iComparable”方法并使其工作呢?
static public int FindMaxIndex<T>( IEnumerable<IComparable<T>> arr ) IEnumerator<IComparableit.MoveNext()) return -1; IComparable<T> max = it.Currentit.Current;