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里..这样写才不行..请教下大家为什么会这样?
我该如何改..
array里面的数据显示转换成数字型吧……
关注,学习~
同意1楼,这个就不可以用泛型,如果传入一组string的值,你说array[j]>array[j]倒底是谁大?
你这么说是没错..
现在这里暂时不考虑传入的是string
但是要比较int 或 double 难道我每个类型都要写一次吗?
@Poiuyt_cyc: 加个Where限定看看它能不能认得。
限定T要实现IComparable接口,然后用接口的方法比较大小
array是未知类型..不能这样比较..要进行转换