ReSharper 2024.1 Help

Code inspection: Field can be made readonly (private accessibility)

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}"; }
Public Class Person Private _name As String Private _age As Integer Public Sub New(name As String, age As Integer) _name = name _age = age End Sub Public Overrides Function ToString() As String Return String.Format("Name: {0}, Age: {1}", _name, _age) End Function End Class

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.

Last modified: 11 February 2024