Csharp/Funksjoner

(Omdirigert fra «Csharp/Kapittel6»)

Funksjoner

rediger

Funksjoner har akkurat samme effekt i programmering som det har i matematikk, en funksjon kan ta null eller flere inn-verdier, og kan gi null eller flere ut-verdier. Kun én ut verdi kan bli presentert fra funksjonen(returverdi), men parameterne kan også spesifisere ut verdier om nødvendig, med out eller ref. Funksjoner kan også gå under navnet prosedyre, algoritme eller metode.

En funksjon i .NET kan deklareres innenfor class, struct, og interface, og følger følgende regel:

[access modifier] [datatype] [navn]([[parameter], [parameter]...]) { }

det nye her, er parameter, men parameter er egentlig ikke nytt det heller, de defineres på samme måte som variabler, men skal ikke initialiseres. En funksjon er det eneste steder man kan skrive instruksjoner, og da ikke i interface.

så la oss se på en eksempel funksjon

public int pow2(int val)
{
  return val * val;
}

return forteller at vi vil returnere val * val tilbake til funksjonen som kalte den, denne datatypen må være samme som datatypen som står før funksjonsnavnet, dette kalles returverdien. Funksjoner som ikke skal returnere noen verdi, bruker "datatypen" void.

En funksjon kan også ha en rekke nøkkelord

  • static

- funksjonen er tilgjengelig kun fra klasse navnet

  • extern

- funksjonen er definert i et ekstern bibliotek (dll) denne må brukes sammen med static

  • virtual

- funksjonen er ment å overskrives i en arvende klasse

  • unsafe

- funksjonen bruker pekere.

  • abstract

- funksjonen må overskrives i en arvende klasse

  • overrides

- funksjonen overskriver en tidligere implementering i arvede klasser

  • new

- funksjonen gjemmer en implementering, uten å skrive over den. Dette brukes ofte i funksjoner som ikke er definert virtual

Parameter

rediger

Funksjoner kan ha så mange parameter man ønsker, men i tillegg, kan parameterne ha spesielle funksjoner i tillegg. En har et nøkkelord som heter ref, dette gjør at verdien blir gitt som en referanse, selv om det er et verditypeobjekt, slik at verdien kan endres. En har også noe som heter out, denne gjør at parameteret er ment å gi en ytterligere returverdi til funksjonen som kalte denne funksjonen. Ved bruk av out forutsetter det at variabelen som sendes med som parameter ikke er initialisert, bare deklarert. Funksjoner som skal ha et ukjent antall parameter, bruker params nøkkelordet på en array.

public void SomeFunction(params int[] parameters)
{
}