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