gpt4 book ai didi

c# - 这个陈述可以评估为 FALSE 吗?

转载 作者:行者123 更新时间:2023-11-30 18:54:15 24 4
gpt4 key购买 nike

我在做评论时偶然发现了这个,作者不在:

int n = Convert.ToInt32(text);
if (((n > 0) || (n < 0)) || (n == 0))
{
return 1;
}

代码总体上看起来很可靠,我很难相信这段代码的唯一目的是让审阅者感到困惑,但我看不出有什么方法可以让这种情况失败。我错过了什么吗?

最佳答案

这可能是 nullable 的残余类型。请参阅此处的 msdn 以获取解释,但基本上如果您的代码最初是这样的:

int? n = StringToInt(text);    // People roll their own functions to do this, though
// they really shouldn't
if (((n > 0) || (n < 0)) || (n == 0))
{
return 1;
}

那么这可能会落空。上面的每个陈述都是错误的,因为 n 可能是函数中的 null,假设它在错误的输入上返回 null,并且代码支持可为 null 的类型。

不太可能,但在查看“维护代码”时,一切皆有可能。但如所写,它必须返回 1(或抛出异常,如该线程中其他人所提到的)。

关于c# - 这个陈述可以评估为 FALSE 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2625754/

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