Making Auto-Properties Get-Only
Starting from C# 6.0, you can define get-only auto-properties, which (similarly to readonly fields) can be only initialized via a constructor or an initializer. Rider detects and helps you remove the redundant set
accessor on auto-properties that are initialized from the constructor/initializer and have no write usages.
If you do not want Rider to suggest this, you can disable the code inspection that detects it (Auto-property can be made get-only).
The reverse functionality is also available. If you decide to change the value of a get-only property later in your code (which leads to a compiler error), Rider detects the error and suggests fixing it by adding the setter for the property:
Another option to make auto-properties get-only 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.
To remove setters from auto-properties that only have read access
- Press Ctrl+Alt+S, or alternatively choose on Windows and Linux or on macOS.
- Go to the Code Cleanup settings page: .
- Create a new profile as described in the Code Cleanup section. In the Selected profile settings section for the new profile, tick the Make auto-property get-only, if possible check box. Optionally, you can enable other code cleanup tasks in this profile.
- Click Save to apply the modifications and let Rider 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 layer-based settings.
- Select the scope where you want to make auto-properties get-only:
- Choose Code | Code Cleanup in the main menu.
- In the Code Cleanup dialog that opens, select the newly created profile.
- Click OK. Rider will make auto-properties get-only in the selected scope.
See Also
Procedures:
- Naming Style
- Managing and Applying Code Formatting Rules
- File and Type Layout
- File Header Style
- Code Syntax Style: Namespace Imports
- Code Syntax Style: Implicit/Explicit Typing
- Using Auto-Properties
- Making Fields Readonly
- Code Syntax Style: Multiple Attributes
- Code Syntax Style: Modifiers
- Code Syntax Style: Optional Member Qualifiers
- Reformatting XML Doc Comments
- Removing Code Redundancies