Convert Static to Extension Method refactoring
ReSharper_Static2ExtensionAction
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
- Place the caret at the declaration or a usage of a static method in the editor, or select it in the File Structure window.
- Do one of the following:
- Press Ctrl+Shift+R and then choose Convert Static Method to Extension
- Right-click and choose Refactor | Convert Static Method to Extension 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:
The instructions and examples given here address the use of the feature in C#. For details specific to other languages, see corresponding topics in the ReSharper by Language section.
Last modified: 20 August 2018