不穿透switch语句
在c#的整个设计阶段中,设计者们一直采用风险/回报测试来决定是否在此语言中包含一种功能.穿透功能没有通过这种测试.在c++中,在一般情况下,case语句在它的constant-expression匹配switch_expression时运行.然后使用break语句使switch语句退出.当缺少break语句时,穿透功能执行switch语句中的下一个case语句.
尽管c#不支持穿透,但是穿透在以下情况中是有用的:你有两个case标签,其中的第二个标签代表在这两种情况下都要执行的操作:
//Dynamically create menu in C++.
switch(itemSelected)
{
case TABLE:
//Add menu options based on current table;
//break left out intentionally.
case TREE_VIEW:
//Add menu options for treeview;
break;
}
//Display menu.