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 Structure window. Or, alternatively place the caret at any of method parameters.
Do one of the following:
Press Alt+Enter and choose Transform Parameters.
Press Ctrl+Alt+Shift+T and then choose Transform Parameters.
Choose
from the main menu.
The Transform Parameters dialog will open.
Select parameters you want to transform.
Depending on selected in/out parameters, JetBrains Rider 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, JetBrains Rider performs the refactoring immediately. Otherwise, it prompts you to resolve conflicts.