ReSharper
 
Get ReSharper
You are viewing the documentation for an earlier version of ReSharper.

Code Inspection: Field can be made readonly (Private Accessibility)

Last modified: 27 October 2022

Say you have decided to make an immutable Person class, initialized only via the constructor. You go ahead and implement the following:

public class Person
{
  private string _name;
  private int _age;
  public Person(string name, int age)
  {
    _name = name;
    _age = age;
  }
  public override string ToString() =>
    $"Name: {_name}, Age: {_age}";
}

ReSharper can detect that the fields are only being assigned in the constructor and offers to create an additional safeguard: by marking them readonly, we get to ensure that neither this class nor its users will inadvertently assign new values to these fields.