c# - 如何在这里实现开关而不是 if 和 else if ?
问题描述
我正在使用 if/else 语句来检查单击了哪个单选按钮。如何使用 switch 语句而不是 if/else。
else if (CBLeather.Checked && CBComputerNav.Checked && !CBStereo.Checked) {
accessories = Accessories.LeatherAndNavigation;
} else if (CBComputerNav.Checked && CBLeather.Checked && CBStereo.Checked) {
accessories = Accessories.All;
} else {
accessories = Accessories.None;
}
解决方案
我认为你不能把 switch case 放在这里,因为你有多个代码分支条件。
您可以从这些条件中提取方法,然后在 if 块中调用它们,例如:
private bool IsLeatherAndNavigation()
{
return CBLeather.Checked && CBComputerNav.Checked && !CBStereo.Checked;
}
并使用:
if (IsLeatherAndNavigation())
{
accessories = Accessories.LeatherAndNavigation;
}
并且可以在需要的地方重复使用,而不是将重复的 if 条件放在类中的任何地方。
推荐阅读
- java - 当有 3 个客户端连接到 java 中的服务器时,在服务器中运行一些特定代码
- python - 如何将 KeyManager 添加到使用 moto 模拟的 kms 密钥中
- javascript - 使用croppie.js 裁剪上传的图像并保存为jpeg
- python - ValueError:在 PIL 中混合图片时图像不匹配
- c# - 从带参数的字符串调用函数
- python - 无法安装模块?“ModuleNotFoundError:没有名为 Cython 的模块”
- c# - C# 按字母顺序 a - z 排序,然后按 aa、ab - zz
- swift - 对多关系的简单核心数据获取
- sql - MS Acces Jet SQL 错误:多个连接条件不支持连接表达式
- python - 在 numpy 中矢量化 for 循环以计算胶带重叠