【发布时间】:2019-07-05 20:14:45
【问题描述】:
如何比较任何类型(int、decimal、float)的两个可空数字并返回两个的大数
我试过了,但它只适用于整数
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;
}
有什么想法吗?
【问题讨论】:
-
您的通用论点
T是开放的。它允许 any 类型。如果T是一个字符串,如何使用找出“更大的选项”?您需要使用IComparable将其限制为数据类型。 -
假设您不是在寻找类似
Compare(int? value1, float? value2)的东西,那么您正在寻找的any 可比较类型的标准副本,包括数字一次(stackoverflow.com/questions/6480577/…)。如果您需要比较不同的类型,那会更有趣 - edit 如果是这样的话。