Rider Help

Convert Static to Extension Method refactoring

This refactoring helps you convert a static method to an extension method, provided that the static method:

  • Has at least one parameter.
  • Resides in a non-generic, non-nested static class.

Consider the following example:

Before refactoringAfter refactoring
static class Foo { public static string Reverse(string input) { var chars = input.ToCharArray(); Array.Reverse(chars); return new string(chars); } static void Test(string str) { str = Reverse(str); } }
static class Foo { public static string Reverse(this string input) { var chars = input.ToCharArray(); Array.Reverse(chars); return new string(chars); } static void Test(string str) { str = str.Reverse(); } }

To convert a static method to an extension method

  1. Place the caret at the declaration or a usage of a static method in the editor, or select it in the Structure window.
  2. Do one of the following:
    • Press Ctrl+Shift+R and then choose Convert Static Method to Extension
    • Choose Refactor | Convert Static Method to Extension in the main menu.
  3. If no conflicts are found, Rider performs the refactoring immediately. Otherwise, it prompts you to resolve conflicts.
Last modified: 11 October 2017

See Also