如何重构这个 switch 语句?

2024-05-24

string liquidClass = string.Empty;

switch (cmbLiquidClass.Text)
{
    case "LiquidClass1":
        liquidClass = Settings.Default.LiquidClass1;
        break;
    case "LiquidClass2":
        liquidClass = Settings.Default.LiquidClass2;
        break;
    case "LiquidClass3":
        liquidClass = Settings.Default.LiquidClass3;
        break;
    case "LiquidClass4":
        liquidClass = Settings.Default.LiquidClass4;
        break;
    case "LiquidClass5":
        liquidClass = Settings.Default.LiquidClass5;
        break;
    case "LiquidClass6":
        liquidClass = Settings.Default.LiquidClass6;
        break;
    case "LiquidClass7":
        liquidClass = Settings.Default.LiquidClass7;
        break;
    case "LiquidClass8":
        liquidClass = Settings.Default.LiquidClass8;
        break;
    case "LiquidClass9":
        liquidClass = Settings.Default.LiquidClass9;
        break;
}

尝试获取当前类的内容的局部变量。由于字符串的工作方式(表现得像值类型),我无法使用字典。有没有什么方法可以重构它,以便不需要这么多行来找到所选的液体类别?


您可以使用属于以下部分的索引器Settings.Default(使用.Net 4.0测试):

var liquidClass = Settings.Default[cmbLiquidClass.Text].ToString();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何重构这个 switch 语句? 的相关文章

随机推荐

  • 在 Web 应用程序上同时运行两个版本的 (twitter) bootstrap

    我目前已经开始尝试使用 bootstrap 和 angularjs 进行客户端开发 我收到了一项任务 为我们的网站 一个 angularjs 应用程序 制作一个或多或少独立的功能 并且一直在研究它 但注意到我学到的引导函数不起作用 经过检查
  • 使用 Stripe 创建订阅后如何获取费用 ID?

    我在用Stripe作为支付网关 现在有一个大问题困扰着我 我使用下面的代码来创建订阅
  • Raspberry 交叉编译 - 执行程序以“分段错误”结束

    我有一个自己编写的程序 我想从我的 x86 机器上为 Raspberry Pi 构建它 我正在使用 eclipse 生成的 makefile 并且无法更改此内容 我已经阅读了 CC for raspi 的教程 Hackaday 链接 htt
  • 确保 Singleton 仅调用一次数据库查询

    我正在尝试创建一个对象来负责读取所有用户访问设置 我已经创建了这样的类 public class SettingsManager private static string connString Data Source MyDB Initi
  • AppEngine异常实例预热java

    在过去的两天里 我们每分钟左右就会经历一次实例预热 实例出现 然后立即关闭 上周我们没有改变任何事情 但它突然开始发生 我们暂时增加了居民数量 但系统仍然出现异常生成动态实例的情况 我们还发现平均冷热身时间从 11 秒增加到 47 秒 无需
  • 在谓词中使用@min

    我当前获取 min 或 max 值的版本是 for NSManagedObject destination in allSpecifics allRates addObject destination valueForKey rate NS
  • 当默认 pip 为 pip2 时,升级 pip3 的正确格式是什么?

    我为两者开发Python 2 and 3 因此 我必须同时使用pip2 and pip3 使用时pip3 我收到此升级请求 最后两行 pip3 install arrow Requirement already satisfied use
  • Ruby on Rails 中的垃圾收集器?

    我尝试在 Google 上搜索很多有关 Rails 垃圾收集器的信息 但没有得到可靠的答案 有谁有资源来展示如何垃圾收集是在 Rails 中实现的吗 我们怎样才能控制它呢 Rails 是一个框架 而不是一种语言 Rails 背后的语言称为
  • 执行mvn sql:execute时出错

    我希望 Maven 执行该 sql 文件 它生成的数据库模式稍后将在我的程序中使用 但它不起作用 可能是由 DELIMITER 引起的 当我执行 mvn sql execute 时 它会打印出 ERROR Failed to execute
  • ProGuard SimException

    经过大约 4 个小时的随机尝试 我正在尝试让 ProGuard 正常工作 尝试让这个令人惊叹的软件正常工作 我的项目使用 LibGDX 和 KryoNet 这是我当前的 ProGuard 配置 verbose dontobfuscate d
  • MVC3 OutputCache VaryByHeader=未设置 Cookie

    我有以下操作方法 HttpGet Authorize OutputCache Duration 60 VaryByHeader Cookie Location OutputCacheLocation Any public ActionRes
  • 词云中的空格

    我目前将 wordle 用于词云的许多艺术用途 我认为 R 的词云可能具有更好的控制能力 1 如何在词云中保持单词大写 解决了 2 如何将两个单词作为一个块保留在词云中 wordle 使用 运算符来完成此操作 R 的词云仅按原样打印 例如
  • 内连接中的排序依据

    我将内部连接放入查询中 我得到了结果 但不知道数据如何输入输出 任何人都可以告诉我内部连接如何匹配数据 下面我显示了一个图像 有两张桌子 一张或两张桌子 根据我的说法 第一行应该是 Mohit 但输出不同 请告诉我 In SQL 输出的顺序
  • Clang 代码覆盖无效输出

    所以我按照这些说明检查并构建了 clang trunkhttp clang llvm org get started html http clang llvm org get started html 我可以使用 coverage 构建二进
  • 是否可以创建一个指向函数的“new”运算符/构造函数的函数指针?

    如果我想要参数化创建一个对象 我当然可以创建一个函数 在特定类上调用 new 并传递一个指针 我想知道是否可以跳过该步骤并将函数指针传递给new运营商本身 boost lambda 提供函数包装器new and delete http ww
  • 如何记录函数的全局依赖关系?

    我从第三方供应商 用于嵌入式平台 获得了一些使用全局变量 用于速度和空间优化 的 C 代码 我正在记录代码 转换为Doxygen格式 如何在函数文档中添加函数需要的全局变量和函数的注释 Doxygen有用于注释参数和返回值的特殊命令 如下所
  • 从数据帧创建 sf 多边形

    我有一个包含一组多边形坐标的数据框 这就是我将其转换为spatialPolygons 包sp 的方法 my df lt data frame Plot c A A A A A B B B B B Corner c SW NW NE SE S
  • 如何在c++中使用libcurl发送POST请求并接收它?

    我正在使用 c libcurl 向网页发送 POST 请求 但我正在努力测试它 使用的代码是 include
  • JTable 不断调用自定义单元格渲染器方法...

    编译源可以在以下位置找到 http www splashcd com jtable tar http www splashcd com jtable tar 我是这门语言的新手 所以我不确定这是否可以接受 我创建了一个 JTable 来为收
  • 如何重构这个 switch 语句?

    string liquidClass string Empty switch cmbLiquidClass Text case LiquidClass1 liquidClass Settings Default LiquidClass1 b