这段代码可以简化吗?

Dev*_*tor 4 c#

这段代码很多if/else,我想知道它是否可以简化为少数几行.代码工作得很好,但我更喜欢更有效和更清洁的方式.

if (textBox_naam.Text.Length < 3)
{
   textBox_naam.BackColor = Color.FromArgb(205, 92, 92);
}
else
{
   textBox_naam.BackColor = Color.White;
}

if (textBox_email.Text.Length < 5)
{
   textBox_email.BackColor = Color.FromArgb(205, 92, 92);
}
else
{
   textBox_email.BackColor = Color.White;
}

if (textBox_body.Text.Length < 20)
{
   textBox_body.BackColor = Color.FromArgb(205, 92, 92);
}
else
{
   textBox_body.BackColor = Color.White;
}
Run Code Online (Sandbox Code Playgroud)

Dar*_*mas 18

你最简单的赌注(不涉及任何技巧!)将是:

SetBackColor(textBox_naam, 3, GOOD_COLOR, BAD_COLOR);
SetBackColor(textBox_email, 5, GOOD_COLOR, BAD_COLOR);
SetBackColor(textBox_body, 20, GOOD_COLOR, BAD_COLOR);
Run Code Online (Sandbox Code Playgroud)

使用如下SetBackColor定义的方法:

public void SetBackColor(TextBox tb, int minLength, Color goodColor, Color badColor)
{
    tb.BackColor = tb.Text.Length < minLength ? badColor : goodColor;
}
Run Code Online (Sandbox Code Playgroud)

  • 你的意思是3,5,20 (3认同)
  • 我不挑剔.但不应该是`tb.Text.Length <minLength`而不是`tb.Text <minLength`? (3认同)