Junior — Middle
89
Какие отличия есть между ключевыми словами const и readonly в C#?
Companies where asked
Сибирские Технологические Решения
Бренд Монитор
Answer from AI
sobes.tech AI
В 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 — неизменяемое после инициализации поле, которое может быть установлено во время выполнения.