我已经把if条件检查了我的字符串不是空的然后执行if if else什么,但它即使字符串为空也会被执行,我运行调试器并且它显示字符串变量的值为&#34 ;"但它仍然执行
string ComplainantContactNo = Convert.ToString(ViewState["CompContactNo"]);
if (ComplainantContactNo != null || ComplainantContactNo != "")
{
ManageQueueBizz quebiz = new ManageQueueBizz();
quebiz.Insert(ComplainantContactNo, "Your complaint has been registered successfully." + " \n Complaint Code: " + " " + OldComplaintCode + "." + " " + "To confirm your status send this complaint code." + "\n (Complaint Cell\n CPO,KP)", null, Convert.ToInt32(lblComplainantID.Text), null, null); //Sms to complainant
}
答案 0 :(得分:3)
你正在使用OR,所以当你通过""
时,第一个条件是true
,这意味着OR条件无论如何都是真的。
我们IsNullOrEmpty()而不是
答案 1 :(得分:3)
你的条件是:
ComplainantContactNo != null || ComplainantContactNo != ""
空字符串不为空,因此第一个条件为true,因此if语句中的代码将运行。请记住,当您使用"或" (A || B
),只要左侧为真,右侧为真,或双方均为真,则整个陈述均为真。
您可能打算使用'和'代替:
ComplainantContactNo != null && ComplainantContactNo != ""
现在,字符串必须两者不为空且不为空,以便将整个表达式视为真。
请注意,这是一项常见操作,可以使用内置方法执行此检查:
String.IsNullOrEmpty(ComplainantContactNo)
答案 2 :(得分:2)
if条件转换为:如果ComplainantContactNo
不为null或者不为空字符串,则执行以下代码。
或者条款,至少需要一个条件才是真的。如果是空字符串,则第一个条件为真,因此代码将被执行。
你可能想要使用这样的东西(.Net 4.0):
if(!string.IsNullOrEmptyOrWhiteSpace(ComplainantContactNo)){
// Execute code here
}
答案 3 :(得分:1)
检查null或空的首选方法
If(!String.IsNullOrEmpty(ComplainantContactNo))
{
// Your code
}
从.net 4.0开始,您可以使用IsNullOrWhiteSpace()方法,该方法指示指定的字符串是空,空还是仅由空格字符组成
If(!String.IsNullOrWhiteSpace(ComplainantContactNo))
{
// Your code
}
答案 4 :(得分:1)
您应该使用&&
代替||
。
让我简要解释会发生什么;
我们假设ComplainantContactNo == null
,然后是
ComplainantContactNo != null || ComplainantContactNo != ""
将成为false || true
,这将导致true
。
ComplainantContactNo == ""
;
ComplainantContactNo != null || ComplainantContactNo != ""
将成为true || false
,这将导致true
。
另外,请记住,您要测试对象是否为空且不是空字符串。正如单词所说,使用 AND -operator。
有关详细信息,请查看AND-operator和OR-operator。