即使我已经有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;
}
}
答案 0 :(得分:3)
如果type=="textboxL"
且内部条件为假,则您的函数不会返回任何值。与"textboxS"
相同。
请注意,default
仅在我们未进入其他case
时被调用(在这种情况下,您在每个break
末尾使用case
)。
根据您的逻辑,您可能希望在功能结束时return true
。
答案 1 :(得分:0)
交换机中的if
子句缺少else
switch(type) {
case "A" : if (condition) return true; else return false; break;
case "b" : if (condition) return true; else return false; break;
...
...
}
这样,如果不满足任何一种情况,你也会返回一个值。