Using Auto-Properties
Auto-implemented properties (also known auto-properties) allow declaring type properties that do not have additional logic in a simpler way. By default, ReSharper encourages using of auto-properties when possible, but this behavior is configurable.
By default, ReSharper highlights most of the properties that could be converted to auto-properties and suggests the corresponding quick-fix or fix in scope:
If you prefer not to use auto-properties, you can change the severity level of the code inspection that detects it (Convert property to auto-property) toDo not show. In this case, properties with backing fields are not highlighted and quick-fixes are not suggested, but you can still apply the conversion with the context action or with the corresponding refactoring:
The reverse functionality of converting existing auto-properties to properties with backing field is also available with the corresponding context action. You can also generate default bodies for property accessors using the To compound property context action:
Another option to convert properties to auto-properties in a bulk mode is code cleanup. You can either run code cleanup with the default profile Default: Full Cleanup or run the cleanup with a custom profile solely targeted at your specific task as described below.
Code cleanup also provides the
Make auto-property get-only, if possible task, which helps you remove
the redundant
set
accessor from properties that are initialized from the constructor and have no write usages.
Note that this task only works for C# 6.0
(
By default, ReSharper automatically detects C# version based on the associated compiler
However, you can specify the target C# version explicitly by selecting the project in the
Solution Explorer
and using the
C# Language Level
property in the
Visual Studio's Properties window
(choose
in the menu).
).
To convert properties to auto-properties with code cleanup
- Open the Code Cleanup options: ReSharper | Options | Code Editing | Code Cleanup.
- Create a new profile as described in the Configuring Code Cleanup section. In the Selected profile settings section for the new profile tick the Use auto-property, if possible check box.
- Click Save to apply the modifications and let ReSharper choose where to save them, or save the modifications to a specific settings layer using the Save To drop-down list. For more information, see Managing and Sharing ReSharper Settings.
- Select the scope where you want to use auto-properties:
- Do one of the following:
- In the Code Cleanup dialog box that opens, select the newly created profile in the Available Profiles area.
- Click Run. ReSharper will use auto-properties in the selected scope.
If you want to convert properties to auto-properties without opening the Code Cleanup dialog box, you can bind the created profile to the silent cleanup and run it simply by pressing Ctrl+Shift+Alt+F. You can also create a custom cleanup profile that would combine converting to auto-properties with other code style tasks.
This feature is supported in the following languages/technologies:
C# | VB.NET | C++ | HTML | ASPX | Razor | JavaScript | TypeScript | CSS | XML | XAML | RESX | Build Scripts | Protobuf | JSON |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
See Also
Procedures:
- Naming Style
- Navigating between Code Issues
- Finding Out What is Wrong with Your Code
- Code Formatting Rules
- File and Type Layout
- File Header Style
- Namespace Imports Assistance
- Implicit/Explicit Typing
- Using Auto-Properties
- Making Fields Readonly
- Attributes Style
- Arranging Modifiers
- Arranging Optional Member Qualifiers
- Reformatting XML Doc Comments
- Removing Code Redundancies