`
1000copy
  • 浏览: 74413 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

嘿,希特勒

阅读更多

switch case ,是复杂度很高的结构。
我发现很多人喜欢用switch的。
其实switch有很多时候,可以用数组来替代。
比如把 今天转换为的星期来表达,如周二,周三等。可以用数组的方法。
 private static string ChinaWeekDay(DayOfWeek DayOfWeek)
        {
            return string.Format("周{0}", "日,一,二,三,四,五,六".Split(',')[(int)DayOfWeek]);
        }

数组本身作为一种基本的数据结构,本身就蕴含着分支在内,因此分支有时候可以转换为数组操作——尤其是在各个分支仅仅操作一个,或者一组相同数据的时候——从而让代码变得简洁。
作为对比,也可以看看switch的等价代码:
private static string ChinaWeekDay(DayOfWeek DayOfWeek)
        {
            switch (DayOfWeek)
            {
                case DayOfWeek.Sunday:
                    return "周日";
                    break;
                case DayOfWeek.Monday:
                    return "周一";
                    break;
                case DayOfWeek.Tuesday:
                    return "周二";
                    break;
                case DayOfWeek.Wednesday:
                    return "周三";
                    break;
                case DayOfWeek.Thursday:
                    return "周四";
                    break;
                case DayOfWeek.Friday:
                    return "周五";
                    break;
                case DayOfWeek.Saturday:
                    return "周六";
                    break;
            }
            return "";          
        }

后者的代码很多,但是看起来“整齐而雄壮”,看到这样的代码,我感觉如同检阅一队德国兵,他们整齐的对我致敬:”嘿,希特勒“。
是不是这样原因,让很多人喜欢用它呢?
不妨和你的代码做个新的见面
1. 查询switch,看看有多少
2. 逐次检视每个switch,看看是否就是操作或者返回同一个,或者同一组变量
3. 是否有更好的方法,比如数组方式?
补充:
format = "2010年3月5日 周?"
何必呢?一个数组搞定
要善用数据结构。
很多时候,数据结构可以更好的起到分支和循环的作用,并且更加好阅读。
0
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics