嘿,希特勒

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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值