Readonly: принцип работы и основные применения
Ключевое слово readonly в C# используется для объявления поля, которое можно только прочитать, но не изменить значение после инициализации. Таким образом, после инициализации значение поля становится неизменяемым.
Например, объявим класс с полем readonly и присвоим ему значение в конструкторе:
public class ExampleClass
{
private readonly int _readOnlyField;
public ExampleClass(int readOnlyValue)
{
_readOnlyField = readOnlyValue;
}
public int GetReadOnlyValue()
{
return _readOnlyField;
}
}
Значение поля readOnlyField мы можем получить через метод GetReadOnlyValue, но изменить его значение уже нельзя.
Попытка изменения поля будет приводить к ошибке компиляции:
ExampleClass example = new ExampleClass(10);
example._readOnlyField = 20; // Ошибка компиляции
Ключевое слово readonly также может использоваться в структурах и в константах классов:
public struct ExampleStruct
{
public readonly int ReadOnlyField;
}
public class ExampleConstants
{
public const int ReadOnlyValue = 5;
public readonly int ReadOnlyField;
public ExampleConstants()
{
ReadOnlyField = ReadOnlyValue;
}
}
В данном примере мы видим, что в структурах и константах классов мы также можем объявить поля с модификатором readonly.
Важно отметить, что readonly поля могут быть изменены только в конструкторе класса или структуры. Если мы попытаемся изменить значение readonly поля в другом месте кода, то получим ошибку компиляции.
Таким образом, использование модификатора readonly увеличивает безопасность кода и позволяет избежать возможных ошибок, связанных с изменением значений переменных в неправильных местах.