Entwickler-Ecke

C# - Die Sprache - Wo und wie Assemblyweite Constants deklarieren???


winx - Di 16.01.07 19:29
Titel: Wo und wie Assemblyweite Constants deklarieren???
Hi,

ich möchte irgendwie in meinem Projekt eine Constantsdatei erstellen, die alle meine Constants enthält und auf die ich
mit Constants.ConstantXY zugreigen kann...

geht das am besten über eine statische Klasse mit static Constants???

greets,
winx


Christian S. - Di 16.01.07 19:40

Hallo!

Zuerst einmal eine Antwort auf Deine Frage:
Ja, eine statische Klasse (mit Einschränkung der Sichtbarkeit aufs Assembly) wäre wohl der richtige Weg.

Nun aber:
Bist Du sicher, dass Du das machen willst? ;-) Bisher war es bei mir so, dass ich die Konstanten, die ich nutzte, auch immer sinnvoll einer normalen Klasse zuordnen konnte. Denn irgendwo benutze ich die ja auch, also deklariere ich sie in der Klasse, wo ich sie benutze.

Grüße
Christian


winx - Di 16.01.07 19:44

naja es ist so, dass ich über art "CommandKonstanten" auf ein altes Com Objekt zugreifen will und diesem Commandos schicken... aber ich bin schon am überlegen ob ich nich auch anders machen kann :-)

danke!!!


Robert_G - Mo 22.01.07 16:16

Wenn du mit "assembly-weit" "internal" meinst, dann OK. Alles oberhalb von Internal sollte möglichst nicht als Konstante deklariert werden.
Eine Änderung des Konstantenwertes könnte sonst später zu binärer Inkompatibilität führen. Dadurch müsste alles was deine Assembly benutzt neu kompiliert werden.
Felder auf typen ebene, die als ".initonly"[1] markiert sind geben dir die gleichen Compilerprüfungen, ohne die Probleme.

[1]In C#: public static readonly int Miep = 1;