Possible Duplicate:
Switch statement fallthrough in C#?
The following code is illegal in C# because control cannot fall through from one case label to another. However, this behaviour is perfectly legal in C++. So, how would you go about coding the same behaviour in C#?
enum TotalWords
{
One = 1,
Two,
Three,
Four
}
public String SomeMethod(TotalWords totalWords)
{
String phrase = "";
switch (totalWords)
{
case TotalWords.Four:
phrase = "Fox" + phrase;
case TotalWords.Three:
phrase = "Brown" + phrase;
case TotalWords.Two:
phrase = "Quick" + phrase;
case TotalWords.One:
phrase = "The" + phrase;
break;
default:
break;
}
return phrase;
}
Eric Lippert, who works on the language, talks about it here:
http://ericlippert.com/2009/08/13/four-switch-oddities/
Short version: the easiest fix is to use a goto:
I think the rationale here is that 9 times out of 10 a missing break is a bug rather than intentional. Forcing you to use break and an explicit branch helps keep you from writing bugs and makes it clear to future maintainters that the fall-through is intentional.