Typer

[06.03.2020] [Nørderier/Teori]

C# er typestærkt hvilket har en del betydning for hvordan man programmerer i sproget. En type er en samling data med tilhørende operationer.

i C# skælnes der overordnet mellem to slags typer nemlig værdityper og referencetyper.

Værdityper

Under værdityperne hører simple typer, struct og enum. En værditype indeholder en kopi af den værdi der er blevet givet den i modsætning til en referencetype der indholder en reference eller et "link" til den givne værdi.

Værdityper - Simple typer

Der er overordnet to forskellige simple typer. Der er booleske, altså typer der kan have værdien true || false. Derudover er der de forskellige numeriske typer:

TypeEksempelStd. værdiInterval (min/maks)
booltruefalsefalse,true
char'B''\u0000''\u0000' ... '\uFFFF'
sbyte-1000-128 .. 127
byte20000 .. 255
short-250000-32768 .. 32767
ushort500000 .. 65535
int-2500000?2147483648 ... 2147483647
uint25000000 ... 4294967295
long-25000000L0?9223372036854775808 ... 9223372036854775807
long25000000UL00 ... 18446744073709551615
float-1.20F0.0+/-10^{-44} ... +/-10^{38}
double-1.200.0+/-10^{-323} ... +/-10^{308}
decimal-1.20M0.0+/-10^{-28} ... +/-10^{28}

Hvor u som prefix står for unsigned, altså uden fortegn. Til hver af de numeriske typer hører de aritmetiske operatorer: +,-,*,/.

Referencetyper

En referencetype er enten en klasse, et interface, et array eller en delegate. En referencevariabel indholder enten værdien null eller en reference til en referencetype der befinder sig på heapen. Hvis en variabel bliver tildelt en referencetype, bliver denne type altså ikke kopieret, men kun linket eller peget på. null kan være af en vilkårlig referencetype.

Det sidste om typer er absolut ikke sagt, de er meget centrale. Men mer senere.

Index Del