WEB开发网
开发学院软件开发C语言 c#扩展方法奇思妙用变态篇三:switch/case组扩展 阅读

c#扩展方法奇思妙用变态篇三:switch/case组扩展

 2010-09-30 20:46:08 来源:WEB开发网   
核心提示: 这段代码定义了三个扩展Switch、Case和Default,首先看这些扩展的一个最简单的应用,c#扩展方法奇思妙用变态篇三:switch/case组扩展(2),如下:1 string typeName = string.Empty;2 typeId.Switch((string s) =>

这段代码定义了三个扩展Switch、Case和Default。

首先看这些扩展的一个最简单的应用,如下:

1     string typeName = string.Empty;
2     typeId.Switch((string s) => typeName = s)
3         .Case(0, "食品")
4         .Case(1, "饮料")
5         .Case(2, "酒水")
6         .Case(3, "毒药")
7         .Default("未知");

输入一个整数,返回它表示的含义。(很多方法可以解决这个问题,此处示例,请勿较真!)

这里解释一下,第2行中的lambda表达式:(string s)=>typeName = s 需要传入一个字符串参数。

第3~6行的Case在满足条件时将第二个参数“内部”返回,传给(string s)=>typeName = s。

这样来理解:当typeId为0时,Case返回“食品”并传入给lambda,为1时返回“饮料”...

最终lambda将值赋给了typeName。

有点绕,一定按这个思路去想,否则下面就不好明白了。

把上面的代码“展开”,相当于以下代码(有点长,折叠起来好一些):

Code

 1     string typeName = string.Empty;
 2     switch (typeId)
 3     {
 4         case 0:
 5             typeName = "食品";
 6             break;
 7         case 1:
 8             typeName = "食品";
 9             break;
10         case 2:
11             typeName = "酒水";
12             break;
13         case 3:
14             typeName = "毒药";
15             break;
16         default:
17             typeName = "未知";
18             break;
19     }

上一页  1 2 3 4 5 6  下一页

Tags:扩展 方法 奇思

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接