Oppregningstype

I programmering er en oppregningstype en datatype som består av en mengde med navngitte verdier kalt elementer eller medlemmer av typen. Navnene på oppregningen er vanligvis identifikatorer som oppfører seg som konstanter i språket. En oppregnet type kan sees på som en degenerert disjunkt union av enhetstype. En variabel som har blitt erklært som oppregnet type kan tildeles hvilken som helst av de oppregnede medlemmene som verdi. Med andre ord har en oppregnet type verdier som er forskjellige fra hverandre, og som kan sammenlignes og tilordnes, men som ikke er spesifisert av programmereren å ha noen spesiell konkret representasjon i datamaskinens minne. Følgelig kan kompilatorer og kommandotolker representere dem vilkårlig. En oppregningstype ligner på en kategorisk variabel i statistikk. 

Et eksempel på en oppregningstype kan være kortfarger som har de fire medlemmene (fargene) hjerter, ruter, kløver og spar. Dersom en variabel er angitt å være kortfarge kan den anta 1 av disse 4 verdiene.

Selv om medlemmene vanligvis er forskjellige tillater noen programmeringsspråk å liste samme medlem opp flere ganger. Navnene på medlemmene trenger ikke være semantisk fullstendige eller kompatible i noen forstand. For eksempel kan en oppregnet kalt farge ha medlemmene rød, grønn, sebra, manglende og bacon. I noen språk defineres rekkefølgen av medlemmene til den oppregnede typen,  mens i andre tilfeller er oppregningstyper uordnede. I andre tilfeller oppstår en implisitt rekkefølge fra kompilatoren som konkret representerer medlemmene som heltall.

Noen tellertyper kan være bygget inn i språk (primitiv datatype). Den boolske variabelen er for eksempel ofte en forhåndsdefinert oppregningstype med medlemmene sann og usann. Mange språk tillater brukere å definere nye oppregnede typer.

Verdier og variabler av en oppregningstype implementeres vanligvis med en heltallstype som den underliggende representasjonen. Noen språk, spesielt systemprogrammeringsspråk, lar brukeren spesifisere bitkombinasjonen som skal brukes for hvert medlem, hvilket kan være nyttig for effektivt å representere mendger med medlemmer som bitstrenger med fast lengde. I typeteori blir oppregningstyper ofte sett på som disjunkte unioner (tagged unions) av enhetstyper. Siden slike typer er av formen  kan de også skrives som naturlige tall.

Se også 
 Oppregning, et konsept i matematikk

Typeteori
Datatyper