这是比较两个日期时间的两种方法:
DateTime now = DateTime.Now;
DateTime then = new DateTime(2008, 8, 1);
// Method 1
if (DateTime.Compare(then, now) < 0)
// ...
// Method 2
if (then < now)
// ...
.Compare
返回一个整数(-1,0,1),该整数指示第一个实例是早于,等于还是晚于第二个实例。我的问题是,当我可以直接使用关系运算符(
.Compare
,<
,<=
,==
,>=
)时,为什么还要使用>
?在我看来,使用.Compare
,无论如何我都需要使用关系运算符(至少在上面的示例中;或者,我可以创建一个检查条件-1、0和1的switch语句)。什么情况下需要使用
DateTime.Compare()
或需要使用ojit_code? 最佳答案
通常,类型上的.Compare
方法用于排序,而不用于直接比较。
当受类型支持时, IComparable<T>
接口(interface)允许许多框架类对集合进行正确排序(例如List<T>.Sort
)。
话虽如此,如果您希望能够在泛型类或方法中进行比较,将泛型参数限制为实现IComparable
或IComparable<T>
的类型,将允许您在未知具体类型时使用.Compare()
进行比较。
关于c# - 比较DateTimes : DateTime. Compare()与关系运算符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5625196/