Ich habe mich über const
und static readonly
Felder informiert. Wir haben einige Klassen, die nur konstante Werte enthalten. Sie werden für verschiedene Dinge in unserem System verwendet. Daher frage ich mich, ob meine Beobachtung korrekt ist:
Sollten diese Art von konstanten Werten immer static readonly
sein für alles, was öffentlich ist? Und nur const
für internal
/protected
/private
Werte verwenden?
Was empfehlen Sie? Sollte ich vielleicht sogar keine static readonly
Felder verwenden, sondern vielleicht Eigenschaften?
8 Stimmen
Hier ist ein sehr interessanter Einzelfall, den ich gerade zugunsten von
static readonly
gefunden habe: Versuchen Sie, ein const innerhalb einesIEnumerator
zu verwenden, das ein unerreichbaresyield
auslösen würde, und Sie erhalten einen gefürchteten "Interner Compilerfehler". Ich habe den Code nicht außerhalb von Unity3D getestet, aber ich vertraue darauf, dass dies entweder ein Mono oder ein .NET Fehler ist. Es handelt sich jedoch um ein C# Problem.4 Stimmen
Mögliche Duplikat von Was ist der Unterschied zwischen const und readonly?
10 Stimmen
Eine weitere Unterschied besteht darin, dass Sie eine const-Zeichenfolge in einem Switch verwenden können, aber keine static readonly-Zeichenfolge.
9 Stimmen
static readonly
kann in derswitch-case
-Anweisung alscase
-Variable nicht verwendet werden,const
ist für diesen Zweck erforderlich.4 Stimmen
static readonly
kann auch nicht als Attributparameter verwendet werden0 Stimmen
Für vollständige Details enlear.academy/…