如何在泛型方法中比较两个值
本文关键字:两个 比较 泛型方法 | 更新日期: 2023-09-27 18:24:08
我需要创建一个返回两个参数中较大值的泛型方法。运算符>和<不要工作。这是我的方法签名:
public static T Greater<T>(ref T a, ref T b)
{
if (a > b)
{
return a;
}
else
{
return b;
}
}
我在C#方面还是个新手,在泛型类型方面是个新手。
由于T
可以是任何类型,因此不能保证T
会过载>
或<
运算符。添加一个IComparable<T>
约束,即T
必须实现包含名为CompareTo
的方法的IComparable<T>
,然后可以使用该方法来比较对象:
public static T Greater<T>(ref T a, ref T b) where T : IComparable<T>
{
if(a.CompareTo(b) > 0) return a;
else return b;
}