在这种情况下你会怎么做来降低圈复杂度
if (Name.Text == string.Empty)
Name.Background = Brushes.LightSteelBlue;
else if(Age.Text == string.Empty)
Age.Background = Brushes.LightSteelBlue;
else if(...)
...
else
{
// TODO - something else
}
假设我有 30 个或更多。 最佳答案
看起来您对每个“文本框”执行相同的逻辑(至少我认为它们是文本框)。我建议将它们全部放入一个集合中并执行以下逻辑:
// Using var, since I don't know what class Name and Age actually are
// I am assuming that they are most likely actually the same class
// and at least share a base class with .Text and .BackGround
foreach(var textBox in textBoxes)
{
// Could use textBox.Text.Length > 0 here as well for performance
if(textBox.Text == string.Empty)
{
textBox.Background = Brushes.LightSteelBlue;
}
}
注意: 这确实改变了你的代码,因为我注意到你只检查一个“TextBox”的值,如果前面的没有空文本。如果你想保持这个逻辑,只需在
break;
后面放一个 textBox.Background = Brushes.LightSteelBlue;
语句,只有第一个空的“TextBox”才会设置背景颜色。关于c# - 如何降低 if-else 语句中的圈复杂度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11208544/