0

我认为这是不可能的,但这可以在 1 个条件而不是 2 个条件下完成吗?

我试图不这样做

bool test = (Number1 & 1) == 0 && (Number1 > 0);

或这个

bool test = (Number1 & 1) == 0 && (Number1 != 0);
4

2 回答 2

4

将对所有 >= 2 的偶数返回 true,对所有奇数以及所有 <= 0 的数字返回 false:

bool test = ((Number1 - 1) % 2 == 1);
于 2013-04-06T03:24:24.453 回答
0

尽管这在技术上是放入Number1一个变量中,但我认为它会起作用。我假设Number1是从长时间运行的函数调用或属性返回的?无论哪种方式:

private bool IsEvenNotZero(int num) {
    return (num & 1) == 0 && (num != 0);
}

bool test = IsEvenNotZero(Number1);

这会将其放入一个参数中,您可以通过这种方式测试该参数两次。我不知道为什么你不能放入Number1一个正常的变量,并且在不了解情况的情况下我不知道是否可以做得更好。

于 2013-04-06T00:10:37.670 回答