当前位置:编程学习 > C#/ASP.NET >>

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#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,