gpt4 book ai didi

c# - 如果语句 ||或者 &&

转载 作者:搜寻专家 更新时间:2023-11-01 03:57:20 24 4
gpt4 key购买 nike

我在编写如下 if 语句时遇到了问题:

public void foo(List<String> list)
{
if(list == null || list.isEmpty()){
// something
}

// else
}

这是困扰我的地方:如果列表为空,list.IsEmpty() 将失败(抛出异常,我正在对空对象调用方法),因为列表为空。但是,因为我正在做 || (或)如果 list 为 null(为真),它将执行第二个 block 。这会抛出异常。

这是正确的吗?在英语中,if list if null or empty 是有意义的。这里是这种情况吗?

对于 && 呢?还是短路?

谢谢。

最佳答案

here is what bothers me: if list is null list.IsEmpty() would fail (throw exception, i m calling a method on a null object), because list is null.

不,不会的。 C# 和 Java 中的 || 运算符都是短路。如果第一个操作数为 true,则不会计算第二个操作数。

参见 section 15.24 Java 语言规范的详细信息,以及 C# 4 规范的第 7.12 节。

&& 运算符类似,只是这次如果第一个操作数为 false,它不会计算第二个操作数。所以可以这样写:

if (list != null && list.size() > 0)

作为相反的条件。

关于c# - 如果语句 ||或者 &&,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13238953/

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