Какие отличия есть между ключевыми словами const и readonly в C#?

В C# ключевые слова const и readonly используются для объявления неизменяемых значений, но имеют важные отличия:

Короткий ответ

Что ответить на собеседовании

В C# ключевые слова const и readonly используются для объявления неизменяемых значений, но имеют важные отличия:

Подробный разбор

Ответ с пояснениями

В C# ключевые слова const и readonly используются для объявления неизменяемых значений, но имеют важные отличия:

  • const

    • Значение должно быть известно на этапе компиляции.

    • Объявляется и инициализируется в момент объявления.

    • Является статическим по умолчанию (неявно static).

    • Используется для констант, которые не изменятся никогда и известны заранее (например, числа, строки).

    • Пример:

      const double Pi = 3.14159;
      
  • readonly

    • Значение может быть установлено либо при объявлении, либо в конструкторе.

    • Позволяет иметь разные значения для разных экземпляров класса (если не статическое).

    • Значение нельзя изменить после завершения конструктора.

    • Используется, когда значение известно только во время выполнения, но не должно изменяться после инициализации.

    • Пример:

      public class MyClass
      {
          public readonly DateTime CreationTime;
      
          public MyClass()
          {
              CreationTime = DateTime.Now;
          }
      }
      

Таким образом, const — это компилируемая константа, а readonly — неизменяемое после инициализации поле, которое может быть установлено во время выполнения.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку