有没有办法隔离测试失败的OR条件语句中的条件并将其传递给另一个方法?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有没有办法隔离测试失败的OR条件语句中的条件并将其传递给另一个方法?相关的知识,希望对你有一定的参考价值。

我对你们所有人都有一个有趣的询问。

我正在研究一个C#项目,并认为如果用户提交非数字值,它会使文本框改变颜色。我已经有一个扩展的Or条件语句设置,用于检查非数字,如下:

public void catchNonNumeric()
{
   int parsedValue;
   if (!int.TryParse(txtBxStudentInput.Text, out parsedValue) || 
       !int.TryParse(txtBxPCInput.Text, out parsedValue) || 
       !int.TryParse(txtBxStuTourInput.Text, out parsedValue) || 
       !int.TryParse(txtBx203A.Text, out parsedValue) || 
       !int.TryParse(txtBx203F.Text, out parsedValue))
   {
     checker = false;
   }
   else
   {
     checker = true;
   }
}

但现在我想知道是否有办法在此语句中采用失败的条件/文本框并更改其颜色以向用户显示问题的确切位置。

这不是一个迫切需要,只是我觉得很酷!谢谢大家的帮助!

答案

一种方法是创建一个你要验证的控件的List<TextBox>,然后循环它们来测试条件。如果其中一个失败,将checker设置为false,将ForeColor设置为Red

public void CatchNonNumeric()
{
    // Start our checker flag variable to true
    checker = true;

    // Create a list of TextBox controls that we want to validate
    var textBoxes = new List<TextBox> 
        {txtBxStudentInput, txtBxPCInput, txtBxStuTourInput, txtBx203A, txtBx203F};

    // Validate each TextBox
    foreach (var textBox in textBoxes)
    {
        int parsedValue;

        if (int.TryParse(textBox.Text, out parsedValue))
        {
            // Reset the color to black (or whatever the default is) if it passes
            textBox.ForeColor = Color.FromKnownColor(KnownColor.WindowText);
        }
        else
        {
            // Otherwise set the color to red and our checker flag to false
            checker = false;
            textBox.ForeColor = Color.Red;
        }
    }          
}
另一答案

如果绑定到数字,WPF中的文本框将默认获取此值。您将获得数据拒绝以及UI样式。

否则,您当然可以使用Func委托查询。 Func将任意数量的泛型作为输入,并提供您想要的输出(在本例中为布尔值)。

var functionDelegate = new Func<string, bool>(text =>
{
    int parsedValue;
    return int.TryParse(text, out parsedValue);
}


//Usage
var isStudentInputNumercic = functionDelegate(txtBxStudentInput.Text);

以上是关于有没有办法隔离测试失败的OR条件语句中的条件并将其传递给另一个方法?的主要内容,如果未能解决你的问题,请参考以下文章

模块中的条件导入

Python中的条件语句

if语句 条件测试 shell编程之条件语句

Ruby - 失败语句/保护条件返回 nil

Shell脚本的条件测试和if条件语句使用

Shell编程之条件语句