我想根据字段值返回枚举值。
例如:
如果Free value field
的值为'15',我想返回枚举值“1”,因为枚举值1的标签是:'10 -20',因为15在10的范围内-20我想要返回那个值。
我想为此创建一个显示方法。
我想我可以通过switch case
场景完成此任务
我怎样才能最好地设置它?
答案 0 :(得分:3)
当然你可以使用switch
/ case
来做,但是如果你处理一系列值和一组有限的结果值(你的枚举元素),那么一个简单的{{1} } / if
可能更适合
所以不要在你的案例分支中说明每个可能的值(1,2,3,4 bla bla),而不是这样做
else if
答案 1 :(得分:1)
是的,用switch
语句就可以做到。
试试这个:
int value;
;
switch (value)
{
case 1, 2, 3, 4 ,5:
//Your code
break;
case 10, 11, 12, 13, 14, 15, 16, 17, 18 ,19, 20 :
//Your code
break;
default :
//Your code
}
答案 2 :(得分:1)
我个人喜欢通过整数除法获得聪明的想法。
如果你的范围是10的组,那么你可以除以10来得到枚举值。
请看下面的代码和截图:
static void Job1(Args _args)
{
int i;
MyEnum value;
// Test #1
i = 15; // Your number
value = (i/10); // Enum result
info(strFmt("Test #1: %1", value));
// Test #2
i = 5; // Your number
value = (i/10); // Enum result
info(strFmt("Test #2: %1", value));
// Test #3
i = 22; // Your number
value = (i/10); // Enum result
info(strFmt("Test #3: %1", value));
}