ReSharper Help

Make Method/Property Static

ReSharper | Refactor | Make Method Static…
ReSharper_MakeMethodStatic

This refactoring allows you to convert an instance method or a property to a static one. All calls, implementations and overrides are automatically corrected.

If the method uses instance members, ReSharper helps you to add the necessary parameter representing 'this' to apply these usages to.

In the example below, we use this refactoring to convert an instance method Merge of the MetaInfo class into a static method. After refactoring, usages of instance properties Id and Name are applied to the new parameter info1:

Before refactoringAfter refactoring
private class MetaInfo { public string Id { get; set; } public string Name { get; set; } public MetaInfo Merge(MetaInfo other) { return new MetaInfo { Id = Id + other.Id, Name = Name + other.Name }; } } private class Test { public Test() { var info1 = new MetaInfo() {Id = "123", Name = "AA"}; var info2 = new MetaInfo() {Id = "456", Name = "BB"}; var merged = info1.Merge(info2); } }
private class MetaInfo { public string Id { get; set; } public string Name { get; set; } public static MetaInfo Merge( MetaInfo info1, MetaInfo other) { return new MetaInfo { Id = info1.Id + other.Id, Name = info1.Name + other.Name }; } } private class Test { public Test() { var info1 = new MetaInfo() {Id = "123", Name = "AA"}; var info2 = new MetaInfo() {Id = "456", Name = "BB"}; var merged = MetaInfo.Merge(info1, info2); } }

To make a method or property static

  1. Place the caret at the declaration or a usage of an instance method in the editor, or select the method in the File Structure window.
  2. Do one of the following:
    • On the main menu, choose ReSharper | Refactor | Make Method Static…
    • Right-click and choose Refactor | Make Static on the context menu.
    • Press Ctrl+Shift+R and then choose Make Static
    The Make Static dialog will open.
  3. If the method uses instance members, it is recommended to leave the option Add 'this' as parameter of [type name] selected. In this case, ReSharper adds the necessary parameter to apply these usages to. If necessary, you can either go without adding the parameter or apply the parameter to some of the instance member usages. In these cases, after refactoring you will have to correct the invalid usages of instance in static context manually.
  4. To apply the refactoring, click Next.
  5. If no conflicts are found, ReSharper performs the refactoring immediately. Otherwise, it prompts you to resolve conflicts.
ReSharper. 'Make Static' refactoring

This feature is supported in the following languages/technologies:

C# VB.NET C++ HTML ASPX Razor JavaScript TypeScript CSS XML XAML RESX Build Scripts
feature_available feature_available feature_available

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.

See Also

Last modified: 30 June 2015