日期:2014-05-18  浏览次数:20822 次

有关C#泛型的一个问题
C# code
        protected void SortInDescendingOrder<T>(ref T[] array)
        {
            for (int i = 1; i < array.Length; ++i)
            {
                T temp = array[i];
                int j = i;
                while ((j > 0) && (array[j - 1] < temp))
                {
                    array[j] = array[j - 1];
                    --j;
                }
                array[j] = temp;
            }
        }

错误 1 运算符“<”无法应用于“T”和“T”类型的操作数

这个要如何解决?求赐教!

------解决方案--------------------
写法错误先看看怎么定义泛型吧
------解决方案--------------------
错误原因是无法对一个通用的类进行四则运算,需要
override operator -


------解决方案--------------------
探讨
引用:
没法解决,不知道T是个什么东西,怎么能知道T可以不可以进行 < 运算。

只能是提供一个委托,返回一个比较结果。

如果我想将T实例化为 int 或 float,该如何修改这段代码?