Inline Field refactoring
Last modified: 21 July 2022ReSharper | Refactor | Inline | Inline…
Ctrl+R I (ReSharper_InlineVariable
)
This refactoring helps you replace a field with its value and remove its declaration. For obvious reasons, the refactoring can be applied to a field that has only one write usage. This may be a constant or readonly field, or a field that is initialized and used in the same function.
If the target field has conditional or complex assignment and it is used within a single function, ReSharper will create a local variable to handle the value of the field.
In the example below, we use this refactoring to inline a constant that has a single usage:
Before refactoring
class Shape{ private const string ErrorMessage = "Something has failed"; public void Draw(string s) { try { /*draw*/ } catch (Exception e) { Console.WriteLine("{0} : {1}", ErrorMessage, e); } }}
After refactoring
class Shape{ public void Draw(string s) { try { /*draw*/ } catch (Exception e) { Console.WriteLine("{0} : {1}", "Something has failed", e); } }}
tip
The reverse functionality is available with the Introduce Field refactoring refactoring.
Inline a field
Place the caret at the declaration or a usage of a field, which has only one write usage.
Do one of the following:
Press Ctrl+R I and then choose Inline Field
Press Ctrl+Shift+R and then choose Inline Field
Right-click and choose Refactor | Inline Field in the context menu.
Choose ReSharper | Refactor | Inline | Inline… 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.