Использование функции "readonly" в языке программирования C
readonly c - это модификатор доступа в C#, который используется для объявления переменных, которые можно только прочитать, но нельзя изменить. Когда переменная объявляется с модификатором readonly, ее значение может быть установлено только во время инициализации или в конструкторе класса, после чего оно становится неизменным.
Пример кода, демонстрирующий использование readonly:
class MyClass
{
// Поля класса с модификатором readonly
private readonly int myNumber; // Примитивное поле
private readonly string myText; // Ссылочное поле
// Конструктор класса
public MyClass(int number, string text)
{
myNumber = number; // Присваивание значения числовому полю
myText = text; // Присваивание значения строковому полю
}
// Метод, в котором доступно только чтение полей
public int GetNumber()
{
return myNumber;
}
public string GetText()
{
return myText;
}
// Метод, в котором изменение полей невозможно
public void ChangeValues()
{
// myNumber = 10; // Ошибка: нельзя изменить значение поля
// myText = "Новый текст"; // Ошибка: нельзя изменить значение поля
}
}
class Program
{
static void Main(string[] args)
{
// Создание экземпляра класса с использованием конструктора
MyClass myObject = new MyClass(5, "Пример");
// Чтение значений полей с использованием методов
Console.WriteLine("Число: " + myObject.GetNumber()); // Вывод: Число: 5
Console.WriteLine("Текст: " + myObject.GetText()); // Вывод: Текст: Пример
// Попытка изменить значение полей
// myObject.myNumber = 10; // Ошибка компиляции
// myObject.myText = "Новый текст"; // Ошибка компиляции
Console.ReadLine();
}
}
В данном примере у нас есть класс MyClass, который содержит два поля с модификатором readonly. Переменные myNumber и myText объявлены с модификатором readonly, что означает, что их значения могут быть установлены только в конструкторе класса.
В методе Main() мы создаем экземпляр класса MyClass, передавая значения для инициализации полей. Затем мы используем методы GetNumber() и GetText() для чтения значений полей и выводим их на консоль.
Попытка изменить значения полей напрямую приведет к ошибке компиляции, так как они объявлены с модификатором readonly и могут быть только прочитаны.
Использование модификатора readonly полезно в ситуациях, когда мы хотим иметь поле, значение которого не может быть изменено после его инициализации, обеспечивая таким образом более безопасное и надежное программирование.