Hva er forskjellen mellom const
og readonly
i C#?
Når vil du bruke den ene fremfor den andre?
Dette forklarer det. Oppsummering: const må initialiseres på deklarasjonstidspunktet, readonly kan initialiseres på konstruktøren (og dermed ha en annen verdi avhengig av hvilken konstruktør som brukes).
EDIT: Se Gishu's gotcha ovenfor for den subtile forskjellen.
En const er en kompilasjonstidskonstant, mens readonly gjør det mulig å beregne en verdi ved kjøring og sette den i konstruktøren eller feltinitialisatoren. En 'const' er altså alltid konstant, mens 'readonly' er skrivebeskyttet når den er tildelt.
Eric Lippert fra C#-teamet har mer informasjon om ulike typer uforanderlighet.