我使用整数值(一个Enum)表示风向,范围从北到北从0到北到北到15。检查风向是否在指定范围内
我需要检查给定的风向(0到15之间的整数值)是否在一定范围内。我首先指定我的WindDirectionFrom
值首先顺时针移动到WindDirectionTo
来指定允许的风向范围。
显然,如果WindDirectionFrom=0
和WindDirectionTo=4
和风向(N和E方向之间)是NE(2)的计算是简单地
int currentWindDirection = 2;
bool inRange = (WindDirectionFrom <= currentWindDirection && currentWindDirection <= WindDirectionTo);
//(0 <= 2 && 2 <= 4) simple enough...
然而,对于不同的情况下说WindDirectionFrom=15
,WindDirectionTo=4
和风向是NE(2)再次,计算立即打破...
bool inRange = (WindDirectionFrom <= currentWindDirection && currentWindDirection <= WindDirectionTo);
//(15 <= 2 && 2 <= 4) oops :(
我敢肯定,这可能不会太困难,但我有这个一个真正的心理障碍。
啊哈吧,还有我使用C#,所以我想这将是几乎相同的语法,你”我已经到了这里。 – 2010-07-21 20:50:33
正确,除了很多语言不允许算术枚举(出于很好的理由)。 OP将不得不将他的枚举变成数字。 – msw 2010-07-21 20:50:43