如何比较任何类型的两个可为空的数字(整数,十进制,浮点数)并返回很大的两个数
我试过了,但是只适用于整数
public static int? Compare(int? value1, int? value2)
{
if(value1> value2)
return value1;
return value2;
}
我尝试过此操作,但不能在类型T的操作数上使用>运算符。
public static Compare<T>(T value1, T value2)
{
if(value1> value2)
return value1;
return value2;
}
有什么想法吗?
答案 0 :(得分:2)
您只能将>
运算符与数字一起使用。对于更通用的方法(例如,如果您还想对字符串使用该方法),则可以使用IComparable
接口:
public static T Compare<T> (T value1, T value2) where T : IComparable<T>
{
if (value1.CompareTo(value2) > 0)
return value1;
return value2;
}