ReSharper Help

Convert Property to Auto-Property

ReSharper | Refactor | Convert | Property to Auto Property…

This refactoring helps you convert properties with private backing fields into auto-implemented properties (also known as auto-properties). The refactoring removes the backing field and replaces all its usages with the newly created auto-property.

By default, ReSharper highlights properties that could be converted to auto-properties and suggests the corresponding quick-fix or fix in scope:

Use auto-property quick-fix

If you prefer not to use auto-properties, you can change the severity level of the code inspection that detects it (inspection) 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:

To auto-property context action

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:

To property with backing field context action

In the example below, the refactoring converts a property with a backing field to an auto-property:

Before refactoringAfter refactoring
class Shape { private Color bgColor; public Color BackgroundColor { get { return bgColor; } set { bgColor = value; } } public Shape(Color background) { bgColor = background; } }
class Shape { public Color BackgroundColor { get; set; } public Shape(Color background) { BackgroundColor = background; } }

You can also convert properties to auto-properties using the refactoring commands. To do so, place the caret at the declaration or a usage of a property in the editor, or select it in the File Structure window, and then do one of the following:

  • Press Ctrl+Shift+R and then choose Convert | Property to Auto-property
  • Right-click and choose Refactor | Convert | Property to Auto-property on the context menu.
  • Choose ReSharper | Refactor | Convert | Property to Auto Property‚Ķ in the main menu.

This feature is supported in the following languages/technologies:

C# VB.NET C++ HTML ASPX Razor JavaScript TypeScript CSS XML XAML RESX Build Scripts
feature_available feature_available

The instructions and examples given here address the use of the feature in C#. For details specific to other languages, see corresponding topics in the ReSharper by Language section.

See Also

Last modified: 21 September 2015