我要檢查多個條件在C#中的字符串,但它拋出錯誤說不能使用& &字符串或布爾檢查多個條件爲C#中的字符串
if ((duStart.Trim() != "" && duStart.Trim() != null) &&(duEnd.Trim() != "" && duEnd.Trim() != null))
{
//do this
}
else
//do that
我要檢查多個條件在C#中的字符串,但它拋出錯誤說不能使用& &字符串或布爾檢查多個條件爲C#中的字符串
if ((duStart.Trim() != "" && duStart.Trim() != null) &&(duEnd.Trim() != "" && duEnd.Trim() != null))
{
//do this
}
else
//do that
你給的代碼編譯罰款。下面是一個簡短但完整的程序 - 我已經改變了你的代碼行的空白,但僅此而已:
using System;
class Test
{
static void Main()
{
string duStart = "X";
string duEnd = "X";
if ((duStart.Trim() != "" && duStart.Trim() != null) &&
(duEnd.Trim() != "" && duEnd.Trim() != null))
{
Console.WriteLine("Yes");
}
}
}
說了:
duStart
的修剪版本),多次計算它似乎沒什麼意義。我會在這裏使用額外的局部變量(trimmedStart
,trimmedEnd
)Trim
從來沒有返回null,所以這些測試是毫無意義的。string.IsNullOrWhitespace
在這裏可能是一個更好的主意。爲什麼打擾創建你永遠不會使用的字符串?順便說一句,奇怪的空檢查可能意味着原始duStart和duEnd *可能爲空,如果是這樣的話,檢查必須在 – 2011-01-10 20:18:05
您可以通過書面形式簡化的條件:
if(!string.IsNullOrEmpty(duStart.Trim()) && !string.isNullOrEmpty(duEnd.Trim()))
{
}
檢查的第一空爲duStart和duEnd。然後嘗試修剪字符串。修剪不能應用於空值。所以,下面的代碼塊應該爲你工作。
if ((duStart != null && duStart.Trim() != "") && (duEnd != null && duEnd.Trim() != ""))
{
//do this
}
else
{
//do that
}
`Trim()`不能返回`null`。看看`String.IsNullOrWhiteSpace()`方法。 – SLaks 2011-01-10 20:12:55
您發佈的代碼已編譯。錯誤在別的地方。請張貼您的代碼的相關部分。 – 2011-01-10 20:13:33