我在处理 C# 中的基本 if else 语句时遇到了问题。
我有两个 uint 类型的变量。我需要检查第一个变量是否在第二个变量的范围内。此外,第一个变量的值可以为 null。如果我为第一个值输入一些值,输出会很好。但是如果我在第一个变量中输入 null,则所需的输出失败
我是这样做的。
using System;
public class Test
{
public static void Main()
{
uint var1 = 0x00000000;
uint var2 = 0x0ffffffa;
if (!((var1 == null) || (((var1 != null) && (var1 & var2)) > 0)))
Console.WriteLine ("no");
else
Console.WriteLine ("yes");
}
}
当输出为 no 时,代码是:
using System;
public class Test
{
public static void Main()
{
uint var1 = 0x00000000;
uint var2 = 0x0ffffffa;
if (!(((var1 != null) && ((var1 & var2) > 0)) || (var1 == null)))
Console.WriteLine ("no");
else
Console.WriteLine ("yes");
}
}
但输出是"否"。我哪里出错了?
我想要一个"是"作为输出。我需要检查第一个变量。如果为 null 则很好,如果不是,那么它是否在第二个变量的范围内,如果是,那么也可以
我对
这里的问题感到困惑。您已经初始化了变量,因此它们不能为 null,您使用了 OR 逻辑操作数,因此该语句在计算第一项并发现它为 true 时将短路。