c# - 我可以用一些可以在四个字段中设置值的二进制逻辑替换值为 0、1、2 和 3 的开关吗?
问题描述
我有这个代码:
switch (buttonsValue)
{
case 0:
vm.ABtnVisible = false;
vm.BBtnVisible = false;
vm.CBtnVisible = false;
vm.DBtnVisible = false;
break;
case 1:
vm.ABtnVisible = false;
vm.BBtnVisible = false;
vm.CBtnVisible = false;
vm.DBtnVisible = true;
break;
case 2:
vm.ABtnVisible = true;
vm.BBtnVisible = false;
vm.CBtnVisible = false;
vm.DBtnVisible = true;
break;
case 3:
vm.ABtnVisible = true;
vm.BBtnVisible = true;
vm.CBtnVisible = true;
vm.DBtnVisible = true;
break;
}
有什么方法可以使用二进制逻辑来获取buttonsValue
数字并使用它来设置适当的值而不是使用switch
?
解决方案
如果buttonsValue
在[0..3]
范围内:
vm.ABtnVisible = buttonsValue >= 2;
vm.BBtnVisible = buttonsValue == 3;
vm.CBtnVisible = buttonsValue == 3;
vm.DBtnVisible = buttonsValue >= 1;
推荐阅读
- php - 将消息从 PHP 脚本发送到没有 ZMQ 或任何 PECL 包的 PHP 棘轮 websocket 服务器
- c# - 如何检查游戏构建错误?
- windows - 如脚本“sc.exe”中所述,我的 Windows 服务不会在失败时重新启动 Windows
- mysql - 将表连接在一起的问题
- mysql - 我是 sql 新手,我正在使用 mysql,我不能使用复制表并创建本地临时表和全局临时表
- reactjs - next.js 为 NextJs 设置 ESLint
- c++ - 如何在 C++ 中使用正则表达式
- sharepoint - Blueprism 代码产生 403 禁止错误
- java - Application Insights for Java:如何创建子工作单元
- node.js - 在mac上安装docker后nodejs无法正常工作