运营商“|”不能应用于'string'和'string'类型的操作数

时间:2014-03-17 17:51:27

标签: c#

大家好,所以我遇到的问题是它在标题上(运算符"|"无法应用于stringstring类型的操作数

这是我目前正在运行的代码

if ( (tb_id.Text="") | (tbnome.Text = "") | (tbpreco.Text = "") | (tbquant.Text = "") )
{
        MessageBox.Show("Erro, Voce não inseriu algo"); 
}

我真的不知道为什么会这样,我已经搜索了stackoverflow和其他网站和论坛,但仍然看不到错误。

2 个答案:

答案 0 :(得分:9)

您希望使用等于运算符==而不是赋值运算符=

赋值运算符返回分配给字符串的值,并将值赋给字符串。相等运算符返回一个布尔值,表示两个字符串是否相等。

另一方面,您几乎肯定希望使用短路OR运算符||而不是非短路OR运算符|,这样如果任何检查通过它就不会

。需要打扰其他人。

答案 1 :(得分:1)

将您的代码更改为此

if ( (tb_id.Text=="") || (tbnome.Text == "") || (tbpreco.Text == "") || (tbquant.Text == "") )
{
    MessageBox.Show("Erro, Voce não inseriu algo"); 
} 

==equal to运算符 =是一个赋值运算符。

or运营商||而不是|

您可能需要阅读http://msdn.microsoft.com/en-us/library/6a71f45d.aspx