Question

I've recently upgraded to R# 7.1 and I'm having this problem where the To Property With Backing Field action displaces my backing fields and moves them to the top of the class.

Example:

Step 1: Define an auto property:

public class MyClass
{
    //... Lots of members here

    public int MyNewProperty {get;set;} // <- Create auto Property
}

Step 2: ReSharper's "To Property With Backing Field"

enter image description here

Expected result:

public class MyClass
{
    //... Lots of members here

    private int _myNewProperty; // <- Backing field immediately above property
    public int MyNewProperty 
    {
       get
       {
           return _myNewProperty;
       }
       set
       {
           _myNewProperty = value;
       }
    }
}

Obtained Result:

public class MyClass
{
    private int _myNewProperty; // <- Backing field on top of the class

    //... Lots of members here


    public int MyNewProperty 
    {
       get
       {
           return _myNewProperty;
       }
       set
       {
           _myNewProperty = value;
       }
    }
}

I've already been playing with Type Members Layout configuration by commenting the "instance fields" part, like this:

<!--instance fields-->
<!--<Entry>
       <Match>
            <And>
               <Kind Is="field"/>
               <Not>
                   <Static/>
               </Not>
            </And>
       </Match>
       <Sort>
           <Readonly/>
           <Name/>
       </Sort>
    </Entry>-->

But I still get the same behavior.

Q: How can I prevent this behavior and revert it to the V6.X one?

Was it helpful?

Solution

Here is the comment in Russian from JetBrains developer. The article is devoted to R# 8 release. He said that placing private fields together at the beginning is much more common use case than placing it near property. He advised to open ticket in their feedback system. Moreover, he said that maybe they introduce such setting in version 8.1.
In short, it is not possible now.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top