ReSharper 2016.3 Help

Convert Property to Auto-Property refactoring

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 most of the 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 do not want ReSharper to suggest you this, you can disable the code inspection that detects it (). 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 in 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 Protobuf JSON
/help/img/dotnet/2016.3/check.svg /help/img/dotnet/2016.3/check.svg /help/img/dotnet/2016.3/cross.svg /help/img/dotnet/2016.3/cross.svg /help/img/dotnet/2016.3/cross.svg /help/img/dotnet/2016.3/cross.svg /help/img/dotnet/2016.3/cross.svg /help/img/dotnet/2016.3/cross.svg /help/img/dotnet/2016.3/cross.svg /help/img/dotnet/2016.3/cross.svg /help/img/dotnet/2016.3/cross.svg /help/img/dotnet/2016.3/cross.svg /help/img/dotnet/2016.3/cross.svg /help/img/dotnet/2016.3/cross.svg /help/img/dotnet/2016.3/cross.svg

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: 23 January 2017