并非所有路径都返回开关中的值
本文关键字:开关 返回 路径 | 更新日期: 2023-09-27 18:25:15
即使我已经有了default
子句,我仍然会得到错误
bool Validate(TextBox textBox , string type)
// textboxL - textbox accept only letters of alphabets and space.Is Mandatory
// textboxS - textbox accept letters of alphabets , space , - , _ .Is Mandatory
// return true by default
{
switch(type)
{
case "textboxL":
if (!Regex.IsMatch(textBox.Text, @"^[a-zA-Z]+$") || String.IsNullOrEmpty(textBox.Text)) {
MessageBox.Show("Invalid!!" + textBox.Text + "must contain only letters and shouldn't be empty");
return false;
}
break;
case "textboxS":
if (!Regex.IsMatch(textBox.Text, @"^[a-zA-Z-_ ]+$") || String.IsNullOrEmpty(textBox.Text)) {
return false;
}
break;
default: return true;
}
}
如果type=="textboxL"
和内部条件为false,则函数不会返回任何值。与"textboxS"
相同。
请注意,只有当我们没有进入其他case
时,才会调用default
(在本例中,在每个case
的末尾使用break
)。
根据您的逻辑,您可能希望在函数末尾使用return true
。
交换机中的if
子句缺少else
switch(type) {
case "A" : if (condition) return true; else return false; break;
case "b" : if (condition) return true; else return false; break;
...
...
}
这样,如果任何情况下的条件都不满足,您也会返回一个值。