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 увеличивает безопасность кода и позволяет избежать возможных ошибок, связанных с изменением значений переменных в неправильных местах.

Похожие вопросы на: "readonly "

Как отключить функцию на сайте?
Технология SSE для улучшения веб-приложений
Net Err Connection Reset: Causes, Solutions, and Prevention Tips
Решение проблемы 0x80004005 в VirtualBox при настройке виртуальной машины
Comic Sans MS: The Fun and Controversial Font
Timespan: Understanding and Utilizing the Concept
POW – Что это такое?
OAuth VK.com - как подключить API в свой проект?
Java D - язык программирования для разработки мощных и эффективных приложений
Linux Unity