Sobes.tech
Junior — Middle

Aký je rozdiel medzi kľúčovými slovami const a readonly v kontexte programovania a v ktorých prípadoch je ich použitie výhodnejšie?

sobes.tech AI

Odpoveď od AI

V jazyku C# sa kľúčové slovo const používa na deklaráciu konštánt, ktorých hodnoty sú známe počas kompilácie a počas behu nemôžu byť zmenené. Takéto hodnoty by mali byť primitívne alebo literály a mali by byť ihneď inicializované.

readonly sa aplikuje na polia, ktorých hodnotu je možné nastaviť iba pri deklarácii alebo v konštruktore triedy. Po inicializácii hodnotu nie je možné zmeniť, ale môže byť vypočítaná počas behu.

Kedy použiť:

  • const — pre nemenné hodnoty známe počas kompilácie (napríklad čísla, reťazce).
  • readonly — keď je hodnota známa iba počas behu, napríklad závisí od parametrov konštruktora.

Príklad:

public class Example {
    public const double Pi = 3.1415; // známe počas kompilácie
    public readonly DateTime CreatedAt;

    public Example() {
        CreatedAt = DateTime.Now; // inicializácia počas behu
    }
}