Ключевое слово в языке C# readonly используется для обозначения в программе полей класса (Fields). Поле – это что-то похожее на константу класса: значение полю присвоить можно, а изменить нельзя. Придать значение полю класса можно либо при объявлении переменных класса, либо в конструкторе.
public class Player { public readonly string Name; public readonly string LastName = "No lastname"; public Player() { Name = "Alexey"; } } class Program { static void Main() { Player player = new Player(); Console.WriteLine("Name: {0}", player.Name); Console.WriteLine("LastName: {0}", player.LastName); } }
Результатом программы будет:
Name: Alexey
LastName: No lastname
Если в классе Player реализовать метод изменения фамилии ChangeLastName() и попытаться изменить значаение LastName, то компилятор выдаст сообщение об ошибке:
A readonly field cannot be assigned to (except in a constructor or a variable initializer)
public void ChangeLastName() { LastName = "New LastName"; }