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.

Variablen y er simpelt hen ikke synlig i Main() – den er kun synlig i den blok (fra { til }) som<br />

består af metoden kvadrat(). Y fødes og dør inden i metode blokken og er usynlig i Main().<br />

Læg også mærke til at x ikke skifter værdi selv om metoden kvadrat sætter ’x’ til x*x – men dette x<br />

inden i metoden er en lokal variabel som fødes og dør i metoden blokken. Når Main() bagefter<br />

udskriver x er x stadig det samme!<br />

I C# kan man gennemtvinge at en variabel bruges som reference type med det reserverede ord ref.<br />

Ovenstående kunne omskrives således:<br />

public static void kvadrat(ref int x){x=x*x;int y=x;}<br />

public static void Main(string[] args)<br />

{<br />

int x=22;<br />

kvadrat(ref x);<br />

//NB dette giver kompiler fejl:<br />

//Console.WriteLine("y: {0}",y);<br />

}<br />

Console.WriteLine("x: {0}",x);<br />

Console.Read();<br />

Når x udskrives er x nu 22*22, fordi metoden databehandler selve x (altså en reference til x) og<br />

ikke en kopi (value type) af x.<br />

Static variable:<br />

I C# kan erklæres static variable (modsat almindelige lokale variable) som er klassevariable som<br />

bevarer/husker deres værdi.<br />

F.eks. kan static variable bruges som tællere – jvf dette lille kode eksempel:<br />

static int antal=0;//tæller antal metode kald:<br />

//to metoder som kaldes:<br />

public static void engangtil(){antal++;}<br />

public static void engangtiligen(){antal++;}<br />

public static void Main(string[] args)<br />

{

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

Saved successfully!

Ooh no, something went wrong!