В чем разница между const и readonly в C#?

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

Уровень

  • Рейтинг:

    2

  • Сложность:

    3

Навыки

  • C#

Ключевые слова

Подпишись на C# Developer в телеграм