Autor Beitrag
winx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 249



BeitragVerfasst: Di 16.01.07 19:29 
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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
winx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 249



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 416


Delphi32 (D2005 PE); Chrome/C# (VS2003 E/A, VS2005)
BeitragVerfasst: 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;