c# - 有没有一种方法可以通过使用字典和其他代码将 switch 语句替换为操作?
问题描述
这是我的应用程序的内容:
private void saveInDatabase(string key, string value)
switch (key)
{
case "a":
def = Helpers.Utils.listOfDoubleFromString(value);
break;
case "b":
chi = int.Parse(value);
break;
....
}
有没有一种方法可以让我使用这样的字典来决定不同的 case 值会发生什么动作?
{"a", () => def = Helpers.Utils.listOfDoubleFromString(value)},
{"b", () => chi = int.Parse(value)},
我的应用程序有大量这样的案例陈述,所以我很想知道是否可以通过设置字典和更多代码来替换它们。
解决方案
我的意思是你几乎明白了:
string def;
int chi;
var map = new Dictionary<string, Action<string>>
{
["a"] = value => def = Helpers.Utils.listOfDoubleFromString(value),
["b"] = value => chi = int.Parse(value),
};
map[key](value);
推荐阅读
- sql - 省去我写查询的时间
- loadrunner - ALM-PC - 尝试添加 PC 主机 VM 时出现错误“更改机器标识失败”
- eclipse - 运行我的 servlet 页面时出现 HTTP 错误 404,意味着使用 JSP 和 servlet 从数据库下载 Long BLOB 文件
- javascript - 检查用户是否登录passport.js
- mongodb - MongoError:未在 SessionDB 上授权执行命令 { listIndexes:“会话”,光标:{} }
- angular - Angular 5生产构建抛出错误
- ruby-on-rails - 红宝石中的时间增量
- ios - 使用 AudioKit 定期播放纯音
- javascript - 反应 this.setState 不更新我的值,火力变化正在显示
- java - Java 8 Optional 内 Optional