跟if和switch说再见
if switch 再见
2023-06-13 09:16:38 时间
我们在编写程序的时候经常用到条件判断,不是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#优雅一点。不过算,暂时这样了,新的一年新开启新的片章。。
相关文章
- sql查询序列是否存在_oracle if判断是否为空
- 使用函数判断三角形(10分)【简单判断 IF 】
- vue中v-if和v-show的区别
- ORA-19295: XQST0060: It is a static error if the name of a function in a function declaration is not in a namespace (expanded QName has a null namespace URI) ORACLE 报错 故障修复 远程处理
- ORA-19192: XQST0047: It is a static error if multiple module imports in the same Prolog specify the same target namespace ORACLE 报错 故障修复 远程处理
- else语句MySQL中使用If Else语句的基本知识(mysql中if)
- MySQL中的 IF 条件语句的应用(mysql中if的用法)
- MySQL 过程中如何使用 IF 语句(mysql过程if)
- 判断最佳实践:利用Oracle的多重IF 判断(oracle多重if)
- Python if…elif…else语句
- MySQL触发器IF语法详解(mysql触发器if语法)
- MySQL if语句:简单实用的条件判断语句。(mysqlif语句)
- MSSQL语句的If条件判断(mssql 语句 if)
- MySQL存储过程中的IF:编写必要的体系结构(mysql存储过程if)
- MySQL中嵌套IF语句的使用方法详解(mysql中if语句嵌套)
- MySQL中IF函数的使用与应用了解公司数据处理技巧(mysql中if公司)
- MySQL中的IF函数使用方法详解(mysql中if使用)
- 如何利用Oracle中的IF函数优化SQL性能(if函数 oracle)
- 语句妙用Oracle中跳出IF语句开启新奇编程(oracle中跳出if)
- 让Oracle中的IF函数更加实用(oracle中 if函数)
- 利用Oracle中的If In语句减少数据处理时间(oracle中if in)
- Redis集群实现Set If Not Exists的持久化(redis集群setnx)
- Oracle如何应用IF和循环语句(oracle if 循环)
- Oracle如何实现If语句的判读(oracle if 判读)
- c#入门之分支语句使用方法(三元运算符、if语句、switch语句)