readonly C#

readonly C#

Всем доброго времени суток. На связи Алексей Гулынин. В данной статье я бы хотел рассказать про модификатор readonly в C#. В классе отдельное поле можно сделать доступным только для чтения, пометив его ключевым словом readonly. Значение данного поля устанавливается при инициализации, либо при использовании конструктора. После того, как значение данного поля было установлено — его изменить уже нельзя. Поля типа readonly могут быть как статическими (принадлежать всему классу), так и не статическими (принадлежать каждому объекту).

Создадим класс MyArray с одним полем, в котором будем хранить размерность массива:

class MyArray
{
    public static readonly int DIMENSION = 20;
}

В методе Main() создадим массив, инициализируем и выведем его:

static void Main(string[] args)
{
    int[] myArray = new int[MyArray.DIMENSION];
    for (int i = 0; i < myArray.Length; i++)
    {
	myArray[i] = i;
    }
    for (int i = 0; i < myArray.Length; i++)
    {
	Console.Write(myArray[i] + " ");
    }
    Console.WriteLine();

    Console.WriteLine("Нажмите клавишу для продолжения...");
    Console.ReadLine();
}

Теперь добавим в класс MyArray конструктор, в котором будем инициализировать данное поле:

class MyArray
{
    public readonly int DIMENSION;

    public MyArray(int dim)
    {
	this.DIMENSION = dim;
    }
}

Изменим немного метод Main():

MyArray myArrayDim = new MyArray(15);
int[] myArray = new int[myArrayDim.DIMENSION];

Поле типа readonly похоже на поле типа const. Отличие заключается в том, что поле типа readonly можно объявлять в конструкторе, а поле типа const — нет.

Ключевое слово const служит для объявления полей и локальных переменных, которые в дальнейшем нельзя переопределить. Исходные значения таких полей устанавливаются при их объявлении, что, по сути, делает их константами.

Давайте в класс MyArray добавим ещё одно поле const:

public const int DIMENSION2 = 30;

В данной статье вы узнали про модификатор readonly в C#.

На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.


Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *