gpt4 book ai didi

c# - 为什么 .NET System.Version "2.0"与 "2.0.0.0"不同?

转载 作者:行者123 更新时间:2023-11-30 23:33:42 27 4
gpt4 key购买 nike

最近比较失败时我遇到了麻烦:

System.Version compareVersion = new Version(2, 0, 0, 0);
System.Version actualVersion = new Version(2, 0);

if(actualVersion >= compareVersion) // returns false

我理解它背后的实现机制,因为最后两位被初始化为-1并且-1小于0。

但是:它背后的基本原理是什么?从数学的角度来看,无论我附加多少个零,1 和 1.0 以及 1.000000 之间都没有区别。

最佳答案

根据 docs

“内部版本号的差异表示对同一源代码的重新编译。当处理器、平台或编译器发生变化时,可能会使用不同的内部版本号。”

构造函数的第三个参数是内部版本号,如果在构造 Version 对象时未分配,它将初始化为 -1。可以想象,可以在第一次构建一个或多个程序集之前创建 Version 对象,例如在某些构建管道逻辑中。一旦构建了程序集并且存在构建号,带有构建号的新 Version 对象将继承没有构建号的版本。

由于“大于”和“小于”运算符重载实际上是关于确定构建的相对时间(即一个版本是早于还是晚于另一个版本),因此从未构建或修改过的版本“小于”一个版本版本有。

关于c# - 为什么 .NET System.Version "2.0"与 "2.0.0.0"不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33822444/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com