运算符'&&'不能应用于'string'和'string'类型的操作数。
如何解决包含运算符'& &'的错误不能应用于'string'和'string'类型的操作数。代码法洛斯为:运算符'&&'不能应用于'string'和'string'类型的操作数。
bool AttorneysData()
{
if (((txtFirstName.Text != "")
&& ((txtSurname.Text != "")
&& (txtAddress.Text
&& (txtTelNo.Text
&& (txtEmail.Text
&& (txtCreatePassword.Text
&& (txtConfirmPassword.Text
&& (cboDisciplineExpertise.Text
&& (cboGeographicalLocation.Text
&& (cboBudgetEstimation.Text
&& (txtNoofIndividuals.Text
&& (cboTypeofClients.Text
&& (txtCompanyName.Text && txtYearsofExperience.Text))))))))))))))
{
return true;
}
else
{
return false;
}
}
您需要每次使用逻辑运算符。如果您想要将所有字符串转换为空字符串,请使用String.IsNullOrEmpty()
而不是!=
运算符。
此外,没有理由在您的表达中使用()
。您需要使用括号来区分操作的优先级,但在代码中不存在优先级冲突,因为所有操作都可以从左到右依次执行。
您的if
语句已包含返回布尔结果的逻辑表达式,然后您可以将其与返回运算符交换。
return String.IsNullOrEmpty(txtFirstName.Text)
&& String.IsNullOrEmpty(txtSurname.Text)
&& String.IsNullOrEmpty(txtAddress.Text)
&& String.IsNullOrEmpty(txtTelNo.Text)
&& String.IsNullOrEmpty(txtEmail.Text)
&& String.IsNullOrEmpty(txtCreatePassword.Text)
&& String.IsNullOrEmpty(txtConfirmPassword.Text)
&& String.IsNullOrEmpty(cboDisciplineExpertise.Text)
&& String.IsNullOrEmpty(cboGeographicalLocation.Text)
&& String.IsNullOrEmpty(cboBudgetEstimation.Text)
&& String.IsNullOrEmpty(txtNoofIndividuals.Text)
&& String.IsNullOrEmpty(cboTypeofClients.Text)
&& String.IsNullOrEmpty(txtCompanyName.Text)
&& String.IsNullOrEmpty(txtYearsofExperience.Text);
的if语句的条件的每学期(term1 && term2 && ...
)必须解析为布尔(真/假)值
你可以解决这个问题是这样的:
bool AttorneysData()
{
if (txtFirstName.Text != ""
&& txtSurname.Text != ""
&& txtAddress.Text != ""
&& txtTelNo.Text != ""
&& txtEmail.Text != ""
&& txtCreatePassword.Text != ""
&& txtConfirmPassword.Text != ""
&& cboDisciplineExpertise.Text != ""
&& cboGeographicalLocation.Text != ""
&& cboBudgetEstimation.Text != ""
&& txtNoofIndividuals.Text != ""
&& cboTypeofClients.Text != ""
&& txtCompanyName.Text != ""
&& txtYearsofExperience.Text != "")
{
return true;
}
else
{
return false;
}
}
或稍微更优雅的方式:
return txtFirstName.Text != ""
&& txtSurname.Text != ""
&& txtAddress.Text != ""
&& txtTelNo.Text != ""
&& txtEmail.Text != ""
&& txtCreatePassword.Text != ""
&& txtConfirmPassword.Text != ""
&& cboDisciplineExpertise.Text != ""
&& cboGeographicalLocation.Text != ""
&& cboBudgetEstimation.Text != ""
&& txtNoofIndividuals.Text != ""
&& cboTypeofClients.Text != ""
&& txtCompanyName.Text != ""
&& txtYearsofExperience.Text != "";
而且,考虑使用string.IsNullOrEmpty
method这将测试空格和其他空字符:
return !string.IsNullOrEmpty(txtSurname.Text)
&& !string.IsNullOrEmpty(txtAddress.Text)
...
string.IsNullOrEmpty不检查空格和空字符。 IsNullOrWhitespace会。 –
谢谢你的工作。我有另一个错误,它休耕为:txtMin.Text> =“1000”为这个我得到错误作为运算符'> ='不能应用于类型'字符串'和'字符串'的操作数 – user2801432
@ user2801432你必须转换字符串值为整数(?)值,以便将其与例如:Convert.ToInt32(txtMin.Text)> = 1000'比较 – splattne
纠正它不能 - &&是比较布尔值 - 字符串是不是。你不打算在每个文本之后有!=“”吗? – BugFinder
另一种读取验证字符串的方法是[string.IsNullOrEmpty()](https://msdn.microsoft.com/en-gb/library/system.string.isnullorempty(v = vs.110).aspx) – StuperUser
为什么你不再在你的条件下添加那些'!=“”'东西?前两次,但之后?然而,所有那些奇怪的括号看起来很麻烦。省略它们。 – HimBromBeere