首页 > 解决方案 > 我可以用一些可以在四个字段中设置值的二进制逻辑替换值为 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?

标签: c#

解决方案


如果buttonsValue[0..3]范围内:

vm.ABtnVisible = buttonsValue >= 2;
vm.BBtnVisible = buttonsValue == 3;
vm.CBtnVisible = buttonsValue == 3;
vm.DBtnVisible = buttonsValue >= 1;

推荐阅读