C#泛型问题
这句我不太懂:使用约束对方法中的类型参数启用更专门的操作。此版本的 Swap<T> 现在称为 SwapIfGreater<T>,它只能与实现 IComparable<T> 的类型参数一起使用。
C# 复制代码
void SwapIfGreater<T>(ref T lhs, ref T rhs) where T : System.IComparable<T>
{
T temp;
if (lhs.CompareTo(rhs) > 0)
{
temp = lhs;
lhs = rhs;
rhs = temp;
}
}
能结合这个例子解释一下吗 --------------------编程问答-------------------- 意思好象就是说,你这里的T必须实现System.IComparable接口,这个意思是" where T : System.IComparable <T>"
限定的,所以lhs.CompareTo(rhs) > 0才会有效 --------------------编程问答-------------------- SwapIfGreater <T> 这个T不能爱是什么类型就是什么类型,of course,他可以是int float char这样的,
因为大多数基本类型都实现了IComparable 接口,就是说这个T的类型必须是要实现IComparable<T> 接口
比如我也写个
class MyClass : IComparable<MyClass>
{
...
}
那这段函数就可以被这么调用了
ObjectName.SwapIfGreater <MyClass> (ref MyClass lhs, ref MyClass rhs);
补充:.NET技术 , C#