在单个If语句中检查多个条件 - C#

Far*_*man 1 c# winforms

我有一个表单,其中有许多textBoxes,需要填写三个文本框才能提交表单.我不想为每个文本框使用每个If块.有没有办法为所有三个文本框使用单个if语句?我使用以下代码:

if (textBox1.Text != "" || textBox2.Text != "" || textBox4.Text != "")
{
   // Code
}
else
{
   MessageBox.Show("Fill required fields");
}
Run Code Online (Sandbox Code Playgroud)

但是这个代码甚至可以填充单个文本狐狸,其余的所需文本框都是空的.

Dar*_*mas 15

 if (textBox1.Text != "" &&  textBox2.Text != "" && textBox4.Text != "")
 {
     // Code
 }
 else
 {
     MessageBox.Show("Fill required fields");
 }
Run Code Online (Sandbox Code Playgroud)

你希望所有条件都通过.这符合逻辑AND运算符的语义&&.

如果您有大量的文本框,我倾向于将它们保存在列表中:

var boxes = new List<TextBox>{
     textBox1,
     textBox2,
     textBox3,
     //...
};
if (boxes.Any(tb => string.IsNullOrEmpty(tb.Text)))
{
     MessageBox.Show("Fill required fields");
}
else
{
    // Code
}
Run Code Online (Sandbox Code Playgroud)

我也倾向于在if部件中保留异常,返回或抛出错误并省略else一部分,因为这只是正常的代码流.这样可以使您希望的代码尽可能地向左运行.


Ser*_*sev 5

你应该||改为&&