Was ist der Unterschied zwischen const und readonly in C#?

Was ist der Unterschied zwischen const und readonly in C#?

Wann würden Sie das eine dem anderen vorziehen?

Dies erklärt es. Zusammenfassung: const muss bei der Deklaration initialisiert werden, readonly kann im Konstruktor initialisiert werden (und damit je nach verwendetem Konstruktor einen anderen Wert haben).

EDIT: Siehe Gishu' s gotcha oben für den subtilen Unterschied

Kommentare (0)

Eine const ist eine Konstante zur Kompilierzeit, während readonly es ermöglicht, einen Wert zur Laufzeit zu berechnen und im Konstruktor oder Feldinitialisierer zu setzen. Eine 'const' ist also immer konstant, aber 'readonly' ist nur lesbar, sobald sie zugewiesen ist.

Eric Lippert vom C#-Team bietet weitere Informationen zu den verschiedenen Arten der Unveränderlichkeit

Kommentare (0)

Ich glaube, ein "const"-Wert ist für alle Objekte gleich (und muss mit einem literalen Ausdruck initialisiert werden), während "readonly" bei jeder Instanziierung anders sein kann...

Kommentare (0)