Operativsystem: .............................................................
Operativsystem: .............................................................
Operativsystem: .............................................................
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: