Этот вопрос проверяет различие между двумя способами объявления неизменяемых значений в C#.
const задает константу, значение которой невозможно изменить после компиляции, тогда как readonly позволяет задать значение переменной только в момент инициализации или в конструкторе.
В C# ключевые слова const и readonly используются для объявления неизменяемых данных, но они имеют важные различия:
const:
Значение присваивается на момент компиляции.
Используется для значений, которые не должны изменяться в программе.
Нельзя изменять значение const после компиляции.
readonly:
Значение присваивается во время выполнения, обычно в конструкторе.
Может изменяться в момент инициализации или в конструкторе, но не в других местах.
Подходит для значений, которые зависят от контекста выполнения.
Пример:
public class Example
{
public const int MaxValue = 100; // Это константа
public readonly int minValue; // Это поле readonly
public Example(int min)
{
minValue = min; // Значение readonly присваивается в конструкторе
}
}В этом примере MaxValue является константой, а minValue — только для чтения и может быть изменено только в конструкторе.