JetBrains Rider 2018.2 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 refactoring

After 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, JetBrains Rider performs the refactoring immediately. Otherwise, it prompts you to resolve conflicts.
Last modified: 21 December 2018

See Also