小弟新学泛型 这是一个泛型的冒泡算法 是网上教程的代码
但是小弟弟一眼感觉这个泛型方法有问题, 然后又继续搜文章,发现连续2篇文章都是代码出错 真心不敢看网上那些转的博客了! 所以还请问大神给解释这种泛型方法如何处理呢?
功能:能让传入的参数 double long int bit 类型都支持排序
class SortHelper<T> where T : IComparable<T>//这个更安全 where T : IComparable //这个兼容性最好 //可以同时设置两个,也可以只设置其中一个 //至于是否要struct,这个看你的需求,不使用struct,使得你的方法功能更强大 { public static void BubleSort(T[] arr) { int length = arr.Length; for(int i = 0; i < length - 2; i++) { for(int j = length - 1; j >= 1; j++) { if(t[j].CompareTo(t[j - 1]) < 0) { T temp = arr[j]; arr[j] = arr[j - 1]; arr[j - 1] = temp; } } } } }
这个方法是错误的
@狂扁小朋友: 什么方法?compareto?这个具体什么方法,你要看具体情况的,我也只是给你一个参考。
通过VS写代码的智能提示,这些都能轻松解决。
class SortHelper<T> where T :
struct
, IComparable
这样不改其他代码的话,应该是不行的。
还需要修改下: if (t[j].CompareTo(t[j - 1]) < 0)
@幻天芒: 正解!
不用吧.继承之后应该是一个运算符重载,不用调用的
这个接口里面没有运算符重载哦。