-
Notifications
You must be signed in to change notification settings - Fork 4
Gendarme.Rules.BadPractice.ReplaceIncompleteOddnessCheckRule(git)
Sebastien Pouliot edited this page Mar 2, 2011
·
1 revision
Assembly: Gendarme.Rules.BadPractice
Version: git
This rule checks for problematic oddness checks. Often this is done by comparing a value modulo two (% 2) with one (1). However this will not work if the value is negative because negative one will be returned. A better (and faster) approach is to check the least significant bit of the integer.
Bad example:
public bool IsOdd (int x)
{
// (x % 2) won't work for negative numbers (it returns -1)
return ((x % 2) == 1);
}
Good example:
public bool IsOdd (int x)
{
return ((x % 2) != 0);
}
Good example (faster):
public bool IsOdd (int x)
{
return ((x & 1) == 1);
}
- This rule is available since Gendarme 2.0
You can browse the latest source code of this rule on github.com
Note that this page was autogenerated (3/17/2011 1:55:44 PM) based on the xmldoc
comments inside the rules source code and cannot be edited from this wiki.
Please report any documentation errors, typos or suggestions to the
Gendarme Mailing List. Thanks!