Hallo zusammen,
Konstanten würde ich direkt im Code platzieren (wenn sie von mehreren Klassen benötigt würden, dann in eine statische Klasse).
In den Application-Settings nur, wenn sie auch "von außen" geändert werden sollen (z.B. Name einer Datenbank-Tabelle oder frei definierbare Spalten).
Der Unterschied zwischen 'const' und 'readonly' ist:
- const kann nur für eingebaute Datentypen verwendet werden (int, bool, string, ...)
- readonly bedeutet, daß dieser Wert auch dynamisch noch im Konstruktor geändert werden kann (danach dann aber konstant ist)
Ich selber benutze 'readonly' häufig in Verbindung mit 'static', d.h. daß es unabhängig von einer einzelnen Instanz ist, z.B. um einen Wert aus den Application-Settings einmalig zu lesen:
C#-Quelltext
1: 2: 3: 4:
| static class Constants { public static readonly string TableName = Properties.Settings.Default.TableName; } |