gpt4 book ai didi

c# - 检查变量是否为 null 或空的正确方法

转载 作者:行者123 更新时间:2023-11-30 14:30:28 26 4
gpt4 key购买 nike

我的一位同事告诉我以下代码不正确,如果我的变量为 null,它将崩溃:

List<FSKUser> users = null;

if (users == null || users.Count() == 0)
{
return false;
}

显然 =null 只是为了测试目的。但是当我运行这段代码时,它运行正确并返回 false。

我检查的方式是安全正确的检查方式吗?

最佳答案

是的,这是安全正确的方法。您的同事可能对 C# 中的运算符优先级或 bool 表达式求值有一些奇怪的理解:)

||运算符(与 && 相同)将在确定结果后立即停止评估。因为 bool OR 永远不会产生 false只要其中一个操作数是 true ,它将要么在第一个操作数上失败(如果它为 null,结果为 true => 你完成了),要么它将计算两个运算符。

当然,如果您不反对使用扩展方法,可以方便地使用它来简化条件。例如。您可以使用这样的扩展方法:

public static bool IsEmpty<T>(List<T> @this)
{
return @this == null || @this.Count == 0;
}

然后您可以使用这样的条件:

if (users.IsEmpty())
{
...
}

另外,请注意 List<T>有一个 Count property - 你可能应该使用它而不是扩展方法 Count() .最后,它会做同样的事情 IIRC(它检查可枚举对象是集合还是列表,IIRC),但它会通过一些循环来做到这一点。

您可能想问问您的同事他认为会发生什么。你有一个简单的测试用例,表明你是对的,但也许他有一些他自己不想这样做的原因。然而,最有可能的是他习惯了一种不同的编程语言,而不是真正的 C#-er。在这种情况下,你们都有机会学习 :)

关于c# - 检查变量是否为 null 或空的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22755458/

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