The Move Type to Outer Scope refactoring allows users to move an inner type to an upper level. All corresponding usages references are automatically updated, including the cases when the inner class uses methods or fields of the outer class.
To move type to outer scope
- Select the inner type in Class View or Object Browser, or position the caret at its name in the editor.
- Do one of the following:
- In the main menu, click ReSharper | Refactor | Move.
- Right-click the type, and in the shortcut menu click Refactor | Move.
- Press F6.
- Press Ctrl + Shift + R, and then select Move.
The Move Type dialog opens.

- To move the type to outer scope, select the Outer Scope option, and then click Continue.
Note If you select the Another Type option, you will perform the Move Static Member refactoring.
The following dialog box opens.

- In the Outer type name text box, specify the name for the type after refactoring. You can use the existing type name as well.
- If you change the class name and want it also to be changed in the comments, select the Search in comments check box.
- Click Continue.
- If you selected the Search in comments check box, ReSharper displays found usages (if any) in the following dialog box.

- Select the check boxes next to the items you want to rename, and click Continue.
Note You can navigate to the locations of the usages and correct them manually. The list of the usages will be updated according to your changes.
If no conflicts are found, the names and references are updated immediately.
See Also
Refactoring Code
Move Static Member