首页 新闻 赞助 找找看

有关泛型的一些问题..

0
[已关闭问题] 解决于 2012-11-06 16:05

public class A<T>
    {
            public void BubbleSort(T[] array)
            {
                
                int length = array.Length;

                for (int i = 0; i <= length - 1; i++)
                {
                    for (int j = 0; j<length-1-i; j++)
                    {
                        if (array[j]>array[j])
                        {
                            T temp = array[j];
                            array[j] = array[j - 1];
                            array[j - 1] = temp;
                        }
                    }
                }
            }
        
    }

编译时,在判断if (array[j]>array[j])这里会报错

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

貌似只在.net framework4和4.5里..这样写才不行..请教下大家为什么会这样?

我该如何改..

Poiuyt_cyc的主页 Poiuyt_cyc | 初学一级 | 园豆:24
提问于:2012-10-29 15:45
< >
分享
其他回答(4)
0

array里面的数据显示转换成数字型吧……

ms_water | 园豆:510 (小虾三级) | 2012-10-29 15:52
0

关注,学习~

Philomena | 园豆:154 (初学一级) | 2012-10-29 16:08
0

同意1楼,这个就不可以用泛型,如果传入一组string的值,你说array[j]>array[j]倒底是谁大?

happydaily | 园豆:301 (菜鸟二级) | 2012-10-29 16:24

你这么说是没错..

现在这里暂时不考虑传入的是string

但是要比较int 或 double 难道我每个类型都要写一次吗?

支持(0) 反对(0) Poiuyt_cyc | 园豆:24 (初学一级) | 2012-10-29 16:33

@Poiuyt_cyc: 加个Where限定看看它能不能认得。

支持(0) 反对(0) happydaily | 园豆:301 (菜鸟二级) | 2012-10-29 17:41
0

限定T要实现IComparable接口,然后用接口的方法比较大小

for certain | 园豆:324 (菜鸟二级) | 2012-10-29 18:11
0

array是未知类型..不能这样比较..要进行转换

Poiuyt_cyc | 园豆:24 (初学一级) | 2012-11-06 16:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册