Viac na
Aký je rozdiel medzi const a readonly v jazyku C#?
Aký je rozdiel medzi const
a readonly
v jazyku C#?
Kedy by ste použili jedno namiesto druhého?
1255
3
To vysvetľuje. Zhrnutie: const sa musí inicializovať v čase deklarácie, readonly sa môže inicializovať v konštruktore (a teda mať inú hodnotu v závislosti od použitého konštruktora).
EDIT: Pozri Gishu'gotcha vyššie pre jemný rozdiel
Const je konštanta v čase kompilácie, zatiaľ čo readonly umožňuje vypočítať hodnotu v čase behu a nastaviť ju v konštruktore alebo inicializátore poľa. Takže 'const' je vždy konštantná, ale 'readonly' je po priradení len na čítanie.
Eric Lippert z tímu C# má viac informácií o rôznych typoch nemennosti
Myslím, že hodnota
const
je rovnaká pre všetky objekty (a musí byť inicializovaná doslovným výrazom), zatiaľ čoreadonly
môže byť pre každú inštanciu iná...