如何编写嵌套的泛型函数
本文关键字:泛型 函数 嵌套 何编写 | 更新日期: 2023-09-27 18:21:55
我正在尝试编写一个通用的堆排序算法。我得到以下错误。原因可能是什么?
类型
T
不能用作泛型类型中的类型参数T
或方法CCD_ 3。没有装箱或类型参数从T
转换为System.IComparable<T>
(CS0314)(堆分拣)
您需要指定与T必须在HeapSort
函数上实现IComparable<T>
相同的通用约束:
private static void HeapSort<T>(T[] items) where T : IComparable<T>
您在MaxHeapify
方法上指定了此约束,为了调用它,T必须满足此条件。
MaxHeapify<T>()
方法有一个where T : IComparable
的通用约束,但您的HeapSort<T>()
方法没有,因此编译器无法解析HeapSort方法对MaxHeaify的调用。您还应该在HeapSort<T>()
方法中添加一个where : IComparable
的通用约束。
private static void HeapSort<T>(T[] items) where T : IComparable<T>