作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一种情况需要比较可为 null 的类型。
假设您有 2 个值:
int? foo=null;
int? bar=4;
这行不通:
if(foo>bar)
以下有效但显然不适用于 nullable,因为我们将其限制为值类型:
public static bool IsLessThan<T>(this T leftValue, T rightValue) where T : struct, IComparable<T>
{
return leftValue.CompareTo(rightValue) == -1;
}
这有效但不是通用的:
public static bool IsLessThan(this int? leftValue, int? rightValue)
{
return Nullable.Compare(leftValue, rightValue) == -1;
}
如何制作我的 IsLessThan
的通用版本?
非常感谢
最佳答案
试试这个:
public static bool IsLessThan<T>(this Nullable<T> t, Nullable<T> other) where T : struct
{
return Nullable.Compare(t, other) < 0;
}
关于c# - 创建一个 nullable<T> 扩展方法,你是怎么做到的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6561697/
我是一名优秀的程序员,十分优秀!