gpt4 book ai didi

c# - 为什么在将值与常量进行比较之前检查空值?

转载 作者:行者123 更新时间:2023-11-30 18:52:48 27 4
gpt4 key购买 nike

有时,必须检查一个值是否与常量相等。在这种情况下,我总是看到这样的代码:

if (!string.IsNullOrEmpty(text))
{
if (text == "Some text here")¹
{
// Do something here.
}
}

就我而言,我宁愿这样写:

if ("Some text here".Equals(text))
{
// Do something here.
}

毕竟,如果textnull , Equals将返回 false ,这是预期的。常量和变量的倒置感觉很奇怪,但对于初学者来说还是可以理解的,并且避免了NullReferenceException。这将与 text.Equals("Some text here") 一起抛出.

我错过了什么吗?

为什么我看到的所有源代码都使用第一个示例中的语法,而不是第二个示例中的语法?


¹ 在实际代码中,它更像是一个常量或只读字段。为了缩短示例,我将字符串内联。

最佳答案

In such cases, I've always seen the code like this:

您认为这很奇怪且没有必要,这是对的,因为它确实如此。这是完全多余的 null 或空检查。坦率地说,我会在代码审查中告诫这样的代码。

if (text == "Some text here") {
// Do something here.
}

非常好,这就是我要使用的。

Am I missing something?

不,您没有遗漏任何东西。

Why all source code I've seen use the syntax from the first example, and never from the second one?

因为你在所有错误的地方寻找爱情?

关于c# - 为什么在将值与常量进行比较之前检查空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10551839/

27 4 0
文章推荐: c# - 除以 100 精度
文章推荐: c# - 将 List 转换为 List