Transform Parameters refactoring
This refactoring helps you quickly change method signature by transforming parameters — for example, get rid of out
parameters, wrap parameters in a tuple or in a new class, and so on. — and automatically update all usages of the method in your solution.
The refactoring lets you perform the following transformations:
Create a new class with public fields or auto-properties for types corresponding to the selected parameters, and use the newly created class instead of parameters.
Replace parameters with a tuple object.
For a method returning
void
, transform a selectedout
parameter to method return.For a method returning
void
, wrap multiple selectedout
parameters to a tuple object and use it as method return.For a method returning
void
, create a new class with public fields or auto-properties for types corresponding to the selectedout
parameters, and use the newly created class as method return.For non-void methods with
out
parameters, combineout
parameters with return type in a tuple object or in a newly created class.
The example below demonstrates a mix of transformations - we replace out
parameter with method return, and we wrap two other parameters with a new class:
Transform method parameters
Place the caret at the declaration or a usage of method in the editor, or select the method in the File Structure window. Or, alternatively set the caret at any of method parameters.
Do one of the following:
Press Control+Shift+R and then choose Transform Parameters
Right-click and choose Refactor | Transform Parameters in the context menu.
Choose
in the main menu.
The Transform Parameters dialog will open.
Select parameters you want to transform.
Depending on selected in/out parameters, ReSharper enables Method receives and/or Method returns selectors. Use these selectors to choose how in/out parameters should be transformed. If you choose to create a new class for parameters, you will be able to specify its name in a field to the right of it.
To apply the refactoring, click Next.
If no conflicts are found, ReSharper performs the refactoring immediately. Otherwise, it prompts you to resolve conflicts.
![ReSharper. Transforming method's parameters ReSharper. Transforming method's parameters](https://resources.jetbrains.com/help/img/dotnet/2021.2/transform_parameters_dialog.png)
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.