众所周知,微软对 Windows 的命名规则一直很诡异,从 XP,Vista,7 到 8 和 8.1 一直到最新的 Windows 10。那么从技术角度考虑,为什么微软跳过了 9 而直接使用 10 呢?据微软内部开发人员流传,是为前操作系统的版本号考虑。
实例代码如下
if ( version.StartsWith ("Windows 9") ) { /*Windows 95, Windows 98 */ } else{ }
当软件开发人员使用:“ 如果版本号开始于 xxx,就执行 yyy" 时,会出现两种情况的正确判断
Windows 9
Windows 9* ( Windows 95 Windows 98 ) 95 和 98 也是开头包含 Windows 9 的
综上所述,在早期测试时,微软发现很多第三方软件开发商使用了如上的方法去判断操作系统,这样会造成对当在 Windows 95 和 Windows 98 上运行使用上述代码的程序时,程序会误判为 WIndows "9"。
所以微软开发者为了避免出现这种不稳定因素,只好命名为 Windows 10 。
觉得怎么还会这么写代码的?甲骨文还真的在 openJDK 里这么写了。http://cr.openjdk.java.net/~simonis/webrevs/8024854.v3/test/java/lang/ProcessBuilder/Basic.java.sdiff.html
第 602 行
同样的写法竟然还有大名鼎鼎的 jEdit 编辑器!
https://searchcode.com/codesearch/view/1393856/
第 48 行