【发布时间】:2014-08-02 15:20:58
【问题描述】:
处理“DateTime”等可为空类型的正确方法是什么?当您需要选择 2 个可以为空且其中一个为空的日期中较小的一个时, 将不会做,因为将空与实际日期进行比较会导致错误,例如:
DateTime? function( DateTime? a, DateTime? b ){
return a < b ? a : b;
}
如果 a 或 b 为空,则返回 b。
我必须使用 if 语句还是有解决方法?
编辑:如果其中一个值为 null,我希望返回 not-null
编辑:如果我使用函数作为示例令人困惑,我很抱歉。这并不是说我想避免使用 if 语句。但是可以为空的 DateTimes 之间有很多比较,我想避免创建需要显式调用等的自定义比较器。
是否可以覆盖默认日期时间?比较器?
【问题讨论】:
-
如果参数之一为空或两者都为空,函数必须返回什么?
-
你想要发生什么?
-
这完全取决于您的应用程序认为空日期的含义:空日期是否小于所有实际日期?比所有真实日期都大?是否为您的应用程序定义了“null
-
@MichaelEdenfield 我希望为任一比较(大于和小于)返回非空值
标签: c# comparison