webForumDet fria alternativet

Enum eller Const?

4 svar · 319 visningar · startad av Lilly

LillyMedlem sedan okt. 200637 inlägg
#1

Om man ska använda sig av konstanter i koden ska man använda sig av enum eller const? Jag har hört något om att enum är bättre. Stämmer det?

GladhMedlem sedan maj 20012 812 inlägg
#2

Det var en märklig fråga, det är ju inte samma sak. Säg vad du vill göra istället!

- M

erkaMedlem sedan dec. 19996 522 inlägg
#3

enum är ju en form av konstant iof, men de har olika användningsområden, vad ska du ha den till?

LillyMedlem sedan okt. 200637 inlägg
#4

Jag fick höra av någon att man bör välja enum framför const när man skapar konstanter i sin kod. Jag missade dock att fråga varför man skulle göra det :) Jag har dock googlat lite och i slutsatserna i denna artikel står det (http://www.codeproject.com/cpp/enumvsconst.asp)
"Using enum's rather than const's helps the compiler find places in your code where you've made incorrect assumptions."

Något likande hittar man även i denna artikel. Se sektionen "Enumerations vs. Constants"
http://aspnet.4guysfromrolla.com/articles/042804-1.aspx

Jag har dock bara skummat snabbt artiklarna men vad tror ni?

GladhMedlem sedan maj 20012 812 inlägg
#5

Har aldrig någonsin tänk i dessa banor.

Enums använder jag när jag vill kunna göra vilkorssatser eller beskriva något.

Type: Status. Här använder jag en enum för att kunna ge min instans olika status. Typ: Active, InActive, Deleted, New, Updated osv osv.. skulle aldrig få för mig att använda constanter till detta.

Constanter använder jag när jag har något som skall finnas på många ställen ikoden men som inte skall ändras. Typ på det är kanske texter, eller momssatser, eller någon variable, kanske en valutakurs, eller om du skapar en formel, och i denna formel så vill du ha en konstant som kan påverkar resultatet. Säg att det är 45,6% chans att det händer en sak i ditt program, då är det en ypperlig kandidat för en constant.

Eftersom enumerations inte kan ha värdet string, så är även detta en ypperligkandidat för const... Säg felmeddelande:

private const string ERROR_MESSAGE = "Det har inträffat ett allvarligt fel, var vänlig och försök igen";

Här kan man nu använda ERROR_MESSAGE på många ställen i din kod, men behöver endast ändra på ett ställe om du vill ändra felmeddelande, nu bör ju sådant ligga i conffiler istället, men du förstår nog iden...

- M

131 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)