我有一个以十六进制值接收和感知(在使用方面)的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}}
是否可以在开关盒中使用十六进制值?还有另一种方法吗?
答案 0 :(得分:1)
当然可以。 "十六进制值"仅仅是整数类型的符号,它是C#switch
块中的有效案例标签。
除了switch
块的后续性质 - 您正在使用break
语句进行处理 - 案例标签的顺序无关紧要。
答案 1 :(得分:0)
是。您的代码将正常工作。可以使用HEX值分配类型uint。如果在执行代码后尝试打印“foo”或“a”的值,则可以看到它们具有与您为其分配的HEX值对应的整数值。
可以在switch case语句中使用HEX值代替整数值。两者都可以完美地运作。