26.07.2013 Views

Operativsystem: .............................................................

Operativsystem: .............................................................

Operativsystem: .............................................................

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

int.MaxValue;<br />

int.MinValue;<br />

Osv med de andre typer (fx double.MaxValue).<br />

NB string er IKKE en ’basal type’ men en klasse i C#: System.String. Men i virkeligheden er<br />

forskellen minimal fordi typer som int, byte eller char er et alias for klasserne Int32, Byte og Char,<br />

så reelt er alle typer i C# klasser - direkte eller indirekte.<br />

I stedet for at skrive:<br />

string s=”Hej”;<br />

double tal=44.66;<br />

kan altså lige så godt skrives:<br />

System.String s=”Hej”;<br />

System.Double tal=44.66;<br />

Det første er nemmere og derfor mest brugt. NB klasser i C# staves normalt med stort begyndelses<br />

bogstav! (Og ofte med ’kamel notation’: op og ned – fx: TcpListener med stort T og L).<br />

Value og reference:<br />

De basale typer er alle value-typer mens string og alle andre klasser (objekter) i C# er<br />

referencetyper.<br />

Vi vil senere komme ind på denne forskel i forbindelse med klasser, men kort sagt er forskellen<br />

denne: valuetyper som fx int x=77 gemmes lokalt i det RAM område som hedder programmets<br />

’stack’, mens reference typer som arrays, strings eller objekter gemmes ikke lokalt i det RAM<br />

område som kaldes ’heap’.<br />

Hvis 2 valuetyper som fx to heltal (x=9 og y=8) sammenlignes for at afgøre om de er ’ens’<br />

sammenligner C# om de har samme værdi eller value. (Value baseret semantik).<br />

Hvis to objekter sammenlignes – sammenlignes det om de to objekter findes på samme RAM<br />

adresse! (Reference baseret semantik).<br />

Value typer slettes automatisk når programmet (eller metoden) slutter (de er kun gemt rent<br />

midlertidigt i metodens stack), mens reference typer skal slettes gennem en ’rense maskine’ i C#<br />

kaldet systemets ’Garbage Collector’ (systemet kendes også i Java). Garbage Collector’en arbejder<br />

altså kun i heap’en!<br />

Når en metode modtager en valuetype som fx et tal modtager metoden en kopi af tallet. Men hvis<br />

metoden modtager en reference type modtager den selve objektet – nemlig en ’reference’ eller<br />

’pointer’ til objektet.<br />

Strenge eller strings:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!