Sobes.tech
Back to questions
Junior — Middle
71

Можно ли сделать поле только для чтения в классе, чтобы его значение нельзя было изменить после инициализации?

Answer from AI

sobes.tech AI

В C# можно сделать поле только для чтения, используя модификатор readonly. Такое поле можно инициализировать либо при объявлении, либо в конструкторе класса, после чего изменить его значение нельзя.

Пример:

class MyClass
{
    public readonly int MyReadOnlyField;

    public MyClass(int value)
    {
        MyReadOnlyField = value; // инициализация в конструкторе
    }
}

Также можно использовать свойство с только геттером и приватным сеттером или без сеттера, и инициализировать его через конструктор или при объявлении (начиная с C# 6.0):

class MyClass
{
    public int MyProperty { get; }

    public MyClass(int value)
    {
        MyProperty = value;
    }
}

После инициализации изменить значение такого свойства нельзя.