C# ||运算符不适用于蒙面文本框

C# || operator not working for masked textboxes

我想验证两个屏蔽的文本框。其中至少有一个需要有一个值。我有以下代码

bool validatePhoneNumbers() 
{
     bool valid = false;
     if (!txtClientFax.MaskCompleted || !txtClientMobile.MaskCompleted) 
     {
          MessageBox.Show("Please enter telephone or mobile number under Client Section");
     }
     return valid;
}

如果我不使用||单独测试有用。我想同时检查两个被屏蔽的文本框

bool validatePhoneNumbers() 
{
 bool valid = false;
 if (!(txtClientFax.MaskCompleted || txtClientMobile.MaskCompleted))
 {
      MessageBox.Show("Please enter telephone or mobile number under Client Section");
 }
 return valid;
}

布尔逻辑是基础和简单的。防止双重否定并写出您的输入。之后,你可以简化和减少表达式。

bool faxEntered = txtClientFax.MaskCompleted;
bool mobileEntered = txtClientMobile.MaskCompleted;

bool neitherEntered = !faxEntered && !mobileEntered;

if (neitherEntered)
{
    // show alert
}

上面的 if() 检查两个文本框是否都没有输入值。如果有一个,neitherEntered 将是 false

你可以逆转它:

bool eitherEntered = faxEntered || mobileEntered;

if (!eitherEntered)
{
    // show alert
}