【发布时间】:2016-06-23 07:54:10
【问题描述】:
我收到一个 uint 值并以十六进制值感知(就使用而言),我想根据这个值设置一个 switch case,如下例所示:
uint foo=someHexValue
uint a;
switch(foo){
case 0xFFFF : a = 0x0;break;
case 0xFFFE : a = 0x1;break;
case 0xFFFC : a = 0x2;break;
case 0x0001 : a = 0x3;break;
case 0x0010 : a = 0x4;break;
}
请注意,foo 的值不一定是有序的或包含所有可能的值。
关于十进制值,我可以这样做吗:
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;
}
是否可以在 switch case 中使用十六进制值?还有其他方法吗?
【问题讨论】:
-
您是否按预期获得输出?或者它会给你任何错误?
-
实际问题是什么?代码没有运行吗?数字字面量与
switch的工作方式无关,实际数字是一样的 -
在你输入这个问题的时间里,你可以尝试两次,但不……你使用什么没有区别。
-
是什么阻止你尝试?此外,C# 中没有“十六进制值”。十六进制文字(例如
0xFFFF)被解释为int -
@havakok dotnetfiddle.net
标签: c# switch-statement