版本.比较到不正确



我正在比较两个Version对象,2.2.0.592.1.0.60CompareTo对我来说似乎是错误的。

我的代码:

Version curVersion = new Version("2.2.0.59");
Version newVersion = new Version("2.1.0.60");
void test(){
   if(curVersion.CompareTo(newVersion) < 0){
      Console.WriteLine("New Update Available");
   }
}

if语句返回true。

从 msdn

版本的重要性降序排列的组件包括: 主要、次要、构建和修订。

既然newVersion.Minor < curVersion.MinorcompareTo不应该返回一个值>0

文档明确指出,如果当前版本大于作为参数传递给CompareTo()的版本,则返回值1

curVersion.CompareTo(newVersion)中,当前版本是大于newVersioncurVersion(因为Minor字段差异(,所以返回值为1

或者,您也可以使用

if ( newVersion > curVersion )
{
    // There's a newer version available, do your magic
}

以获得更易读的检查。这将返回与CompareTo()相同的结果(对于等效检查(,但更容易理解。

最新更新