c#扩展方法奇思妙用变态篇三:switch/case组扩展
2010-09-30 20:46:08 来源:WEB开发网这样看起来简单了吧,当然Color.FromArgb也可以放在return中。这里是故意放在了Switch的第二个参数中的!
到现在为止估计大家应该有一个疑问了,原来的switch/case中可以使用“break”直接返回,这里是怎么处理的呢?
Case还有第三个参数,它用来处理实是否break,为true时break,false时继续下一个Case。
个人感觉大多数情况下,符合某个条件后一般不需要继续其它的了,所以重载传入true,即默认break。
与switch/case是相反的。如果不习惯,你可以在扩展的源代码中修改一下!
我们再看一个非break的情形如何使用,应用场景如下:
一款关于球的游戏:
进球6~10个(包含6、10,以下同),可得奖励 1;
进球11~20,再奖励 10;
进球21~50,再奖励 100;
进球51~100,再奖励 1000;
进球超过100,再奖励 10000;
例:进球30个,奖励为 1+10+100 = 111。
写个函数计算奖励。
1 private static int GetReward(int count)
2 {
3 int score = 0;
4 count.Switch((int i) => score += i)
5 .Case(c => c > 5, 1, false)
6 .Case(c => c > 10, 10, false)
7 .Case(c => c > 20, 100, false)
8 .Case(c => c > 50, 1000, false)
9 .Case(c => c > 100, 10000, false);
10 return score;
11 }
- ››扩展Axis2框架,支持基于JVM的脚本语言
- ››扩展WebSphere Portal V6个性化功能
- ››扩展JavaScript的时候,千万要保留其原来的所有功...
- ››扩展数据:如何为 Model 750 服务器选择 I/O 扩展...
- ››扩展 JDT 实现自动代码注释与格式化
- ››扩展 secldap 的功能以验证多个数据源
- ››扩展 JUnit4 以促进测试驱动开发
- ››扩展 JUnit 测试并行程序
- ››扩展的ToolStripEx控件
- ››扩展 Eclipse 的 Java 开发工具
- ››扩展 Eclipse 辅助和规范开发流程
- ››扩展方法 DataTable 和List 相互转换
更多精彩
赞助商链接