海鸥航迹

学习之笔记,好文之收集。

导航

[导入]Why does my switch statement works differently?

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;

}

}

}


文章来源:http://blogs.msdn.com/csharpfaq/archive/2004/07/22/191787.aspx

posted on 2004-09-22 09:32  海天一鸥  阅读(1130)  评论(1编辑  收藏  举报