How to implement a read only property

The second way is the preferred option.

private readonly int MyVal = 5;

public int MyProp { get { return MyVal;}  }

This will ensure that MyVal can only be assigned at initialization (it can also be set in a constructor).

As you had noted – this way you are not exposing an internal member, allowing you to change the internal implementation in the future.

Leave a Comment