如何编写嵌套泛型函数

Nem*_*emo 11 c#

我正在尝试编写一个通用的堆排序算法.我收到以下错误.可能是什么原因?

该类型T不能用作T泛型类型或方法中的类型参数Heap.MainClass.MaxHeapify<T>(T[], int, int).没有拳击或类型参数转换从T到 System.IComparable<T>(CS0314)(堆排序)

Dar*_*rov 10

您需要指定T必须IComparable<T>在HeapSort函数上实现的相同通用约束:

private static void HeapSort<T>(T[] items) where T : IComparable<T>
Run Code Online (Sandbox Code Playgroud)

您在MaxHeapify方法上指定了此约束,并且为了调用它,T必须满足此条件.