版本.比较到不正确
本文关键字:不正确 比较 版本 | 更新日期: 2023-09-27 18:34:42
我正在比较两个Version
对象,2.2.0.59
到2.1.0.60
,CompareTo
对我来说似乎是错误的。
我的代码:
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.Minor
,compareTo
不应该返回一个值>0
文档明确指出,如果当前版本大于作为参数传递给CompareTo()
的版本,则返回值1
。
在curVersion.CompareTo(newVersion)
中,当前版本是大于newVersion
的curVersion
(因为Minor
字段差异(,所以返回值为1
。
或者,您也可以使用
if ( newVersion > curVersion )
{
// There's a newer version available, do your magic
}
以获得更易读的检查。这将返回与CompareTo()
相同的结果(对于等效检查(,但更容易理解。