我在處理C#中的基本if else語句時遇到問題。使用按位運算符驗證if條件
我有兩個類型爲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");
}
}
當輸出來臨,因爲沒有代碼如下:
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");
}
}
但產量來了「無」。我哪裏錯了?
我想要一個'是'作爲輸出。我需要檢查第一個變量。如果它爲空然後罰款,如果不是,那麼它是否在第二個變量的範圍內,如果是,那麼也很好
'uint'是一個值類型,因此它不能爲'null'。你的if語句中有兩個冗餘條件。 –
那麼如何將空值的條件合併? –
也許你想'var1 == 0'而不是'var1 == null'?或者你必須將'var1'類型改爲'uint? var1 = 0x00000000;' –