跟if和switch说再见
2023-02-19 12:29:31 时间
我们在编写程序的时候经常用到条件判断,不是IF就Switch。有时候一个判断多就会觉得麻烦和看起来不舒服。最近在搞一个项目,就是这样太多的判断,个人觉得不是爽。于是就另辟新径尝试一下,我们就以一个简单的星期判断来讲解一下吧。首先如果用IF进行判断。。
public static string GetChineseWeek(string Week)
{
string ret="星期六";
if(Week.IndexOf("Sunday") >= 0) ret="星期日";
if(Week.IndexOf("Monday") >= 0) ret="星期一";
if(Week.IndexOf("Tuesday") >= 0) ret="星期二";
if(Week.IndexOf("Wednesday") >= 0) ret="星期三";
if(Week.IndexOf("Tuesday") >= 0) ret="星期四";
if(Week.IndexOf("Friday") >= 0) ret="星期五";
return ret ;
}
好,这个就是if当然你可以说elseif更为容易理解,但我个人不喜欢elseif咯。。好吧我们上switch
public static string GetChineseWeek(string Week)
{
string string.Format("星期{1}", "六");
switch (Week){
case "Sunday":
ret=string.Format("星期{1}", "日");
break;
case "Monday":
ret = string.Format("星期{1}", "一");
break;
case "Tuesday":
ret= string.Format("星期{1}", "二");
break;
case "Wednesday":
ret = string.Format("星期{1}", "三");
break;
case "Thursday":
ret = string.Format("星期{1}", "四");
break;
case "Friday":
ret = string.Format("星期{1}", "五");
break;
}
return ret;
}
这个就是switch直观一点点吧,但忘记一个括号就麻烦了。好接下来就是我们的秘技。。
private static Dictionary<string, Func<string>> GetChineseWeek= new Dictionary<string, Func<string>>
{
{"Sunday", ()=>{ return "星期日";} },
{"Monday", ()=>{ return "星期一";} },
{"Tuesday", ()=>{ return "星期二";} },
{"Wednesday", ()=>{ return "星期三";} },
{"Thursday", ()=>{ return "星期四";} },
{"Friday", ()=>{ return "星期五";} },
{"Saturday", ()=>{ return "星期六";} }
};
对,我们就用了之前讲的Dictionary,想不到Dictionary还可以这样用,不过要注意的就是调用方法需要:
GetChineseWeek[DateTime.Now.DayOfWeek.ToString()]()
这样就可以了。。当然你说那个更优更好,这个就看选择了,最后一个比较优雅一点,而IF和SWITCH则用的比较广和烂,基本会编程的看一下都知道和了解。
最后,再上一个JS那边优雅的
const day = "tuesday";
let dayValue = 0;
const values = {
monday:0,
tuesday: 1,
wednesday:2
thursday: 3,
friday: 4,
saturday: 5
sunday: 6
};
dayValue = values [day] ?? -1; //??空值合并操作符
console.log(dayValue);
上面的是js的方式,感觉比C#优雅一点。不过算,暂时这样了,新的一年新开启新的片章。。
相关文章
- Jgit的使用笔记
- 利用Github Action实现Tornadofx/JavaFx打包
- 叹息!GitHub Trending 即将成为历史!
- 微软软了?开源社区讨论炸锅,GitHub CEO 亲自来答
- GitHub Trending 列表频现重复项,前后端都没去重?
- Photoshop Elements 2021版本软件安装教程(mac+windows全版本都有)
- (ps全版本)Photoshop 2020的安装与破解教程(mac+windows全版本都有)
- (ps全版本)Photoshop cc2018的安装与破解教程(mac+windows全版本,包括2023
- 环境搭建:Oracle GoldenGate 大数据迁移到 Redshift/Flat file/Flume/Kafka测试流程
- 每个开发人员都要掌握的:最小 Linux 基础课
- 来撸羊毛了!Windows 环境下 Hexo 博客搭建,并部署到 GitHub Pages
- 超实用!手把手入门 MongoDB:这些坑点请一定远离
- 【GitHub日报】22-10-09 zustand、neovim、webtorrent、express 等4款App今日上新
- 【GitHub日报】22-10-10 brew、minio、vite、seaweedfs、dbeaver 等8款App今日上新
- 【GitHub日报】22-10-11 cobra、grafana、vue、ToolJet、redwood 等13款App今日上新
- Photoshop 2018 下载及安装教程(mac+windows全版本都有,包括最新的2023)
- Photoshop 2017 下载及安装教程(mac+windows全版本都有,包括最新的2023)
- Photoshop 2020 下载及安装教程(mac+windows全版本都有,包括最新的2023)
- Photoshop 2023 资源免费下载(mac+windows全版本都有,包括最新的2023)
- 最新版本Photoshop CC2018软件安装教程(mac+windows全版本都有,包括2023