Ключевое слово в языке 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";
}

