Invert Boolean refactoring
ReSharper_InvertBool
This refactoring allows you to automatically modify a boolean member so that its value is inverted. If you apply this refactoring to a boolean field or a property, ReSharper lets you specify a new name and invert all its usages, i.e. if you refactor private bool isEnabled;
to private bool isDisabled;
, ReSharper will make sure that, for example, if(isEnabled)
becomes if(!isDisabled)
everywhere.
If you apply this refactoring to a boolean method, ReSharper lets you choose whether to invert its internal logic, usages, or both.
In the example below, we use this refactoring to invert the IsEven
method. We specify a new name IsOdd
and choose to invert both the internal logic and usages:
Before refactoring | After refactoring |
---|---|
public bool IsEven(int input)
{
return input % 2 == 0;
}
public void Test(int value)
{
if (IsEven(value))
Console.WriteLine("\n the number is even");
} | public bool IsOdd(int input)
{
return input % 2 != 0;
}
public void Test(int value)
{
if (!IsOdd(value))
Console.WriteLine("\n the number is even");
} |
To invert a boolean method
- Place the caret at the declaration or a usage of a boolean member in the editor, or select it in the File Structure window.
- Do one of the following:
- Press Ctrl+Shift+R and then choose Invert Boolean
- Right-click and choose Refactor | Invert Boolean in the context menu.
- Choose in the main menu.
- If no conflicts are found, ReSharper performs the refactoring immediately. Otherwise, it prompts you to resolve conflicts.
This feature is supported in the following languages and technologies: