Sobes.tech
Junior — Middle

Czym różnią się słowa kluczowe const i readonly w kontekście programowania, i w jakich przypadkach ich użycie jest bardziej wskazane?

sobes.tech AI

Odpowiedź od AI

W C#, słowo kluczowe const jest używane do deklarowania stałych, których wartości są znane na etapie kompilacji i nie mogą się zmieniać podczas działania programu. Takie wartości powinny być prymitywne lub literały i muszą być od razu zainicjowane.

readonly jest stosowane do pól, których wartość można ustawić tylko podczas deklaracji lub w konstruktorze klasy. Po inicjalizacji wartość nie może zostać zmieniona, ale może być obliczona podczas działania programu.

Kiedy używać:

  • const — dla niezmiennych wartości znanych na etapie kompilacji (np. liczby, ciągi znaków).
  • readonly — gdy wartość jest znana tylko podczas działania, np. zależy od parametrów konstruktora.

Przykład:

public class Example {
    public const double Pi = 3.1415; // znane na etapie kompilacji
    public readonly DateTime CreatedAt;

    public Example() {
        CreatedAt = DateTime.Now; // inicjalizacja podczas działania
    }
}