Home > Refactorings > Reordering method parameters with Visual Studio and CodeRush

Reordering method parameters with Visual Studio and CodeRush

July 31st, 2012

Sometimes you may find that various method parameters are ordered illogically, or when method parameters appear in a different order relative to one another, similar methods. In this case, if you prefer the parameters appear in a consistent and logical order, you must not only change the order in the method signature but also update all calls to the method. Take into account complex cases when you can move return values of a function into our parameters and vice versa. Refactoring such complex cases is a rather complex and time-consuming task, especially if there are too many calls.

The Reorder Parameters refactoring from CodeRush can perform this task automatically and make reordering parameters fun:

CodeRush Reorder Parameters in popup menu

It has a great animated interactive phase where you choose parameter positions that you’ve never seen before (unless you’ve used this CodeRush refactoring earlier). Here is it in action:

CodeRush Reorder Parameters animation

Once the refactoring is applied, all method calls are modified automatically in the entire solution along with method overloads, if any.

Of course, you can use the built-in Visual Studio refactoring version. The built-in refactoring command provides a dialog window that allows you to change the order of the parameters for a method as follows:

Visual Studio Reorder Parameters refactoring

The dialog window shows the method’s parameters. To change the order of parameters, click the item that you wish to move in the list. Then, click the up or down arrow buttons to move the selected item. A preview method signature is displayed as you make changes. Once you are done with the new signature, click the OK button to perform the updates.

All in all, it’s up to you to decide which version of the refactoring – CodeRush or Visual Studio, is more convenient. However, if we compare the Reorder Parameters refactoring shipped in CodeRush and the Reorder Parameters refactoring built-in to Visual Studio (VS refactoring), we see the following advantages in the refactoring shipped in CodeRush:

  • The VS refactoring does not allow you to move out parameters to a return value, but CodeRush refactoring does;
  • The VS refactoring does not allow you to convert the return value to an out parameter, but CodeRush refactoring does;
  • The CodeRush version of the refactoring provides an advanced preview hint of changes that are being applied to the resulting method declaration, for instance, if you are moving the return value to an out parameter for this method:

CodeRush Reorder Parameters sample code

The refactoring must change all return statements and assign the returned value to the new out parameter as follows:

CodeRush Reorder Parameters changes preview

The CodeRush refactoring has several options available on the Editor | Refactoring | Reorder Parameters option page in the Options Dialog. You can tweak the following options for this refactoring:

  • The ‘Animate parameter reordering’ option specifies whether or not an interactive animation is enabled.
  • The ‘Use hint for the code changes’ option specifies whether or not additional preview hints are enabled.
  • The ‘Leave changed code as comments’ option specifies whether or not modified code changes should be left in comments for a future code review.
Products: CodeRush Pro
Versions: 12.1 and up
VS IDEs: 2008 and up
Updated: Jul/31/2012
ID: R062

Similar Posts:

  1. No comments yet. Be the first and leave a comment!