我在分配值时遇到错误。
我的代码是:
protected bool ValidateProfile()
{
bool blnFirstName = false;
bool blnLastName = false;
bool blnEMail = false;
//(error on line below: "The left-hand side of an assignment must be a variable, property or indexer")
ValidateProfile() = false;
if txtFName != ""
blnFName = true;
if txtLName != ""
blnLName = true;
if txtEMail != ""
blnEMail = true;
if (blnFName) && (blnLName) && (blnEMail))
ValidateProfile = true;
}
如何为ValidateProfile分配布尔值?
由于
答案 0 :(得分:7)
你想要
return false;
在C#中,我们不为函数名赋值,以便返回值。
如果你想在从方法返回的不同时间点设置返回值,那么你应该这样做:
bool retVal; // Defaults to false
if (condition)
retVal = true;
if (otherCondition)
retVal = false;
if (thirdCondition)
retVal = true;
return retVal;
答案 1 :(得分:3)
您无法为函数指定值。您需要return false;
答案 2 :(得分:2)
您想要return false
好的,拿你发布的代码:
protected bool ValidateProfile()
{
return !String.IsNullOrEmpty(txtFName) && !String.IsNullOrEmpty(txtLName) && !String.IsNullOrEmpty(txtEMail);
}
或者
protected bool ValidateProfile()
{
bool returnValue = true;
if(String.IsNullOrEmpty(txtFName))
{
returnValue=false;
}
else if(String.IsNullOrEmpty(txtLName))
{
returnValue = false;
}
else if(String.IsNullOrEmpty(txtEMail))
{
returnValue = false;
}
return returnValue;
}
虽然您一旦找到无效字段就可以返回false。
答案 3 :(得分:2)
将最后一行更改为:
return false;
虽然看起来你总是在这里回归虚假。有没有选择返回true?
答案 4 :(得分:2)
正如其他人所指出的,在C#中,您使用的是return
而不是MyFunction = x
。在这种情况下,您可以将最终检查的结果分配给布尔值并将其返回:
bool retVal = (blnFName) && (blnLName) && (blnEMail);
return retVal;
或者,您可以完全跳过作业:
return (blnFName) && (blnLName) && (blnEMail);
编辑:我注意到你使用匈牙利表示法,这意味着txtFName是一个TextBox。请记住,C#没有像VB这样的默认属性。如果它是TextBox,它将永远不会等于“”,因为它不是System.String
类型。我猜你真的想要评估txtFName.Text
答案 5 :(得分:2)
除了所有回报之外,只是旁注......
您可能想要更改此内容:
如果txtFName!=“”
检查String.IsEmptyOrNull(txtFName.Text)是否
或者至少将变量初始化为null或String.Empty。
只是一个FYI。
答案 6 :(得分:0)
不是C#程序员,但你不能只写:
return (txtFName != "") && (txtLName != "") && (txtEMail != "");
对于函数体?