ReSharper 2024.3 Help

Code inspection: Auto-property accessor is never used (non-private accessibility)

This inspection reports public auto-properties that have nominal usages, but may not do anything meaningful because one of their accessors is never used.

Here is an example that illustrates the issue in a simple case:

public class Post { // Set in the constructor but never read public string Name { get; set; } // Read once but the value is never set public bool NeedsReview { get; set; } public Post(string name) => Name = name; public void FlagReview() { if(NeedsReview) Console.WriteLine("Please review"); } }

For the solution-wide inspection to work, you need to enable at least one of the following:

  • Simplified global usage checking: select Show unused non-private type members when solution-wide analysis is off on the Code Inspection | Settings page of ReSharper options Alt+R, O.

  • Solution-wide analysis: select Enable solution-wide analysis on the Code Inspection | Settings page of ReSharper options Alt+R, O.

Note that even if the reported accessor has no direct usages in your solution, there could be cases where it is used indirectly — for example, via reflection — or it could just be designed as public API. In all those cases, you would want to suppress the usage-checking inspection for the accessor in one of the following ways:

Last modified: 28 May 2024