首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >比较DateTimes: DateTime.Compare()与关系运算符

比较DateTimes: DateTime.Compare()与关系运算符
EN

Stack Overflow用户
提问于 2011-04-12 01:37:46
回答 2查看 8K关注 0票数 22

这里有两种比较两个DateTimes的方法:

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,我无论如何都需要使用关系运算符(至少在上面的例子中是这样;或者我可以创建一个switch语句来检查情况-1、0和1)。

在什么情况下更喜欢或需要使用DateTime.Compare()

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-12 01:41:42

通常,类型上的.Compare方法用于排序,而不是用于直接比较。

当一个类型支持IComparable接口时,它允许许多框架类正确地对集合进行排序(例如,List<T>.Sort )。

也就是说,如果您希望能够在泛型类或方法中进行比较,则将泛型参数限制为实现IComparableIComparable<T>的类型将允许您在具体类型未知时使用.Compare()进行比较。

票数 17
EN

Stack Overflow用户

发布于 2011-04-12 01:41:40

当您将对象作为IComparable传递时,“关系”运算符不可用。在这种情况下,它可能会很方便。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5625196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档