16. august 2006 - 17:22
Der er
8 kommentarer og 1 løsning
constant cannot be marked static - why not?
Jeg har en klasse kaldet Protocol som jeg vil have til at indeholde en række konstante chars som hver har sin betydning. Grunden til at disse skal være static er, at jeg tilsyneladende kun kan benytte konstante variabler i forbindelse med en switch. Min Protocol-klasse ser således ud: namespace Net { public static class Protocol { public static const char DELIMITIER = '|'; public static const char CHAT_MESSAGE = '0'; public static const char ENEMY_POSITION = '1'; } } Jeg får her en fejlmeddelelse, der siger at de tre const-variabler ikke kan markeres som static. Hvorfor kan de ikke det? Hvis jeg fjerne "static" så virker denne klasse, men så kan jeg ikke sige "case Protocol.CHAT_MESSAGE" i min switch. Nogen der kan greje løsningen på dette problem? På forhånd tak.
Annonceindlæg fra Cognizant
Agentic AI kræver mere end teknologi
De fleste virksomheder har efterhånden bevist, at AI virker.
Pilotprojekter leverer resultater. Medarbejdere bruger generative AI-værktøjer. Nye use cases dukker op på tværs af organisationen.
16. august 2006 - 17:56
#4
Jo, og det er jo også det samme som at sige at der kun er den ene af dem. Dette er en af grundegenskaberne ved en static. At være static betyder dog omvendt ikke at noget er konstatnt. Midt imellem const og static har du så readonly, som kun kan ændres i en constructor.
16. august 2006 - 18:18
#8
I Java har man reserveret ordet const til senere brug. Af en eller anden grund har de bare aldrig nogen sinde taget det i brug. final er for alle praktiske formål det samme som const når det anvendes på en variabel.