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, JetBrains Rider reports positional properties of records that are never accessed.

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