Why does my switch statement works differently?

Why does my switch statement works differently?

  • Comments 5

C# does not support an explicit fall through for case blocks (unless the block is empty) 

For an explanation of why, see Why is the C# switch statement designed to not allow fall through, but still require a break? on MSDN

The following code is not legal and will not compile in C#:

switch (x)

{

case 0:

Console

.WriteLine(x)

// do something

case 1:

Console

.WriteLine(x)

// do something in common with 0

default:

Console

.WriteLine(x)

// do something in common with 0, 1 and everything else

break;

}

In order to achieve the same effect in C# the code must be modified as shown below (notice how the control flows are very explicit): 

class

Test

{

static void Main()

{

int x = 3;

 

switch (x)

{

case 0:

// do something

goto case 1;

case 1:

// do something in common with 0

goto default;

default:

// do something in common with 0, 1, and anything else

break;

}

}

}

Leave a Comment
  • Please add 4 and 8 and type the answer here:
  • Post
Page 1 of 1 (5 items)