ReSharper
 
2023.1
Get ReSharper
You are viewing the documentation for an earlier version of ReSharper.

Make auto-properties get-only

Last modified: 04 October 2021

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. ReSharper detects and helps you remove the redundant set accessor on auto-properties that are initialized from the constructor/initializer and have no write usages.

Make auto-property get-only fix

If you do not want ReSharper 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), ReSharper detects the error and suggests fixing it by adding the setter for the property:

ReSharper: quick-fix for a missing setter

Another option to make auto-properties get-only in a bulk mode is code cleanup. You can either run code cleanup with the Built-in: Full Cleanup profile or create and run a custom profile solely targeted at your specific task as described below.

If you want to make auto-properties get-only without opening the Code Cleanup dialog to choose a profile, you can bind the created profile to the silent cleanup and run it by pressing CtrlShiftAlt0F. You can also create a custom cleanup profile that would combine making properties get-only with other code style tasks.

This feature is supported in the following languages and technologies: