Funksjoner

Det finnes flere måter å skrive funksjoner/metoder på i C#.

Det mest vanlige og ukompliserte eksemplet:

Console.WriteLine("pluss(1,1) = {0}", pluss(1,1));
# skriver ut: 'pluss(1,1) = 2'
 static int pluss(int tall1, int tall2)
{
   return tall1 + tall2;
}

Verdier for tall1 og tall2 mates her inn, også returneres svaret rett etterpå.

Eksempel hvor man opererer uten returverdi:

int svar;
minus(1, 1, out svar);
Console.WriteLine("minus(1,1) = {0}", svar);
# skriver ut: 'minus(1,1) = 0'
static void minus(int tall1, int tall2, out int svar)
{
   svar = tall1 - tall2;
}

Her er funksjonen endret så den kan returnere en verdi slik den får verdier inn.

Enda et eksempel hvor man opererer uten returverdi:

int svar = 0;
gange(2, 2, ref svar);
Console.WriteLine("gange(2,2) = {0}", svar);
# skriver ut: 'gange(2,2) = 4'
static void gange(int tall1, int tall2, ref int svar)
{
   svar = tall1 * tall2;
}

Her gis funksjonen en referanse til variabelen så innholdet kan settes direkte.

Eksempel hvor man trenger å mate inn en ukjent mengde data:

Console.WriteLine("sum(1,2,3,4,5,6,7,8,9) = {0}", sum(1,2,3,4,5,6,7,8,9));
# skriver ut: 'sum(1,2,3,4,5,6,7,8,9) = 45'
static int sum(params int[] tall) // trenger ikke nødvendigvis være int
{
   int summen = 0;
   foreach (int t in tall)
   {
      summen += t;
   }
   return summen;
}

Her er innmatede verdier summert og returnert.

Også et eksempel på frivillige og navngitte argumenter:

Console.WriteLine("logaritmen(100) = {0}", logaritmen(100));
# skriver ut: 'logaritmen(100) = 2'
Console.WriteLine("logaritmen(basen:2, nummer:512) = {0}", logaritmen(basen:2, nummer:512));
# skriver ut: 'logaritmen(basen:2, nummer:512) = 9'
static double logaritmen(double nummer, double basen = 10)
{
   return Math.Log10(nummer) / Math.Log10(basen);
}

Her er det to kall til funksjonen logaritmen hvor førstnevnte ikke inkluderer noe nummer for base, og dermed brukes 10 som standard.

Sistnevnte derimot navngir både basen og nummer, som så gis verdier.

Som i andre programmeringsspråk kan man også gå for overstyring, her er praksisen den samme som f.eks. i Java.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *