ReSharper 2020.3 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) { this.name = name; this.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) Me.name = name Me.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 private name and age fields are only being assigned in the constructor and offers to create an additional safeguard — by marking them readonly, we get to ensure that this class will not inadvertently assign these fields anywhere within its methods.

Last modified: 08 March 2021