ReSharper
 
Get ReSharper
Get your hands on the new features ahead of the release by joining the Early Access Program for ReSharper 2025.1! Learn more

Code inspection: Non-accessed positional property (private accessibility)

Last modified: 08 April 2024

C# 9 record syntax defines a bunch of members implicitly, including Equals()/GetHashCode()/ToString() implementations, properties corresponding to primary constructor parameters, and the Deconstruct() method.

Taking into account all these implicit definitions, ReSharper reports positional properties of records that are never accessed.

To make removal of redundant positional members safe, the Remove unused property quick-fix (AltEnter) invokes the Safe Delete refactoring to support all record usage patterns. In the example above, ReSharper recognizes indirect usages in all C# deconstruction forms and is able to remove the corresponding _ from such deconstructions.