Rider Help

Invert Boolean refactoring

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, Rider lets you specify a new name and invert all its usages, i.e. if you refactor private bool isEnabled; to private bool isDisabled;, Rider will make sure that, for example, if(isEnabled) becomes if(!isDisabled) everywhere.
If you apply this refactoring to a boolean method, Rider 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 refactoringAfter 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

  1. Place the caret at the declaration or a usage of a boolean member in the editor, or select it in the Structure window.
  2. Do one of the following:
    • Press Ctrl+Shift+R and then choose Invert Boolean
    • Choose Refactor | Invert Boolean in the main menu.
  3. If no conflicts are found, Rider performs the refactoring immediately. Otherwise, it prompts you to resolve conflicts.
Last modified: 9 August 2017