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

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

 2010-09-30 20:46:08 来源:WEB开发网   
核心提示: 这样看起来简单了吧,当然Color.FromArgb也可以放在return中,c#扩展方法奇思妙用变态篇三:switch/case组扩展(4),这里是故意放在了Switch的第二个参数中的!到现在为止估计大家应该有一个疑问了,原来的switch/case中可以使用“break&rdq

这样看起来简单了吧,当然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     }

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

Tags:扩展 方法 奇思

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