使用十六进制值在C#中切换案例陈述

时间:2016-06-23 07:54:10

标签: c# switch-statement

我有一个以十六进制值接收和感知(在使用方面)的uint值,我想根据此值设置一个switch case,如下例所示:

uint foo=hexValue
uint a;
switch(foo){
    case 65535: a = 0x0;break;   
    case 65534: a = 0x1;break;   
    case 65532: a = 0x2;break; 
    case 1: a = 0x3;break;   
    case 16: a = 0x4;break;   
}

请注意,foo的值不一定是有序的或包含所有可能的值。

我可以对小数值进行处理,如:

{{1}}

是否可以在开关盒中使用十六进制值?还有另一种方法吗?

2 个答案:

答案 0 :(得分:1)

当然可以。 "十六进制值"仅仅是整数类型的符号,它是C#switch块中的有效案例标签。

除了switch块的后续性质 - 您正在使用break语句进行处理 - 案例标签的顺序无关紧要。

答案 1 :(得分:0)

是。您的代码将正常工作。可以使用HEX值分配类型uint。如果在执行代码后尝试打印“foo”或“a”的值,则可以看到它们具有与您为其分配的HEX值对应的整数值。

可以在switch case语句中使用HEX值代替整数值。两者都可以完美地运作。

相关问题