为了账号安全,请及时绑定邮箱和手机立即绑定

有关泛型的一些问题..

有关泛型的一些问题..

MMMHUHU 2018-12-06 22:29:24
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里..这样写才不行..请教下大家为什么会这样? 我该如何改..
查看完整描述

8 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

这样写肯定不行,array 并不是数组

查看完整回答
反对 回复 2019-01-21
?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

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

查看完整回答
反对 回复 2019-01-21
?
ITMISS

TA贡献1871条经验 获得超8个赞

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

查看完整回答
反对 回复 2019-01-21
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

你这么说是没错..

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

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

查看完整回答
反对 回复 2019-01-21
?
SMILET

TA贡献1796条经验 获得超4个赞

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

查看完整回答
反对 回复 2019-01-21
?
慕仙森

TA贡献1827条经验 获得超7个赞

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

查看完整回答
反对 回复 2019-01-21
  • 8 回答
  • 0 关注
  • 387 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信