gpt4 book ai didi

c# - 使用 <= 而不是 == 与 MinValue 进行比较

转载 作者:太空宇宙 更新时间:2023-11-03 17:07:58 25 4
gpt4 key购买 nike

我刚刚遇到了以下代码行:

if(someInt <= int.MinValue) { /* ... */ }

我想知道我是否遗漏了使用 <= 的一些微妙之处比较好比更直观==比较?

最佳答案

这是循环中常用的方法——而不是(例如)

if (value == max)
break;

使用

if (value >= max)
break;

虽然您知道值“永远不应该”大于最大值,但如果程序逻辑的某些部分有误,并且值作为 (max + 12) 传入,会发生什么情况?第一种情况会尝试在 32 位系统上循环 40 亿次;第二种情况会在意识到您已经超过“最大”位置后立即退出。

因此,这是表达同一件事的更稳健的方式,因为它会在一切设置正确时起作用,但在有人搞砸时也会起作用(或者至少不会出现灾难性的失败)。处理器可以在对内部类型执行 == 的同时执行 >=,因此没有性能差异。

但是,在将 Int 与 Int.MinValue 进行比较时使用 <= 是多余的(尽管无害),因为在技术上不可能有比 Int 中的值更小的值。当然,Int64 仍然可以小于 Int32.MinValue。

所以我认为这是编码人员的“习惯力量”。或者他们不相信 Int.MinValue 会返回最小值:-)

关于c# - 使用 <= 而不是 == 与 MinValue 进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2180116/

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