TOC

This article is currently in the process of being translated into Dutch (~99% done).

De Basis:

Functions

Een functie laat je toe een stuk code in te kapselen om dit dan aan te roepen vanuit een ander stuk code. Je zal al vlug in een situatie terechtkomen waar je een stuk code moet herhalen vanuit meerdere plaatsen en dit is waar functies kunnen gebruikt worden. In C# wordt een functie als volgt gedeclareerd:

<visibility> <return type> <name>(<parameters>)
{
<function code>
}

Om een functie te gebruiken geeft je de naam van de functie in gevolgd door een haakje '(', dan de parameters (als die er zijn) en dan sluit je opnieuw de haakjes ')'.

DoStuff();

Hier is een voorbeeld van de DoStuff() function:

public void DoStuff()
{
    Console.WriteLine("I'm doing something...");
}

Het eerste stuk, public, slaat op de zichtbaarheid, en is optioneel. Als je geen zichtbaarheid definieert zal de functie private zijn. Hier later meer over. Vervolgens het data type dat de functie zal retourneren. Dit kan eender welk geldig data type binnen C# zijn, als er geen data type geretourneerd (zoals in ons voorbeeld) wordt, gebruik je void. Een void functie zal helemaal niets retourneren. Deze functie aanvaard ook geen parameters, dat kan je zien omdat er niets tussen de haakjes staat. Omdat de functie op deze manier nogal saai is passen we deze wat aan:

public int AddNumbers(int number1, int number2)
{
    int result = number1 + number2;
    return result;
}

We hebben nu bijna alles aangepast. De functie retourneert nu een integer en aanvaardt twee parameters (ook allebei integers). In plaats van niets te retourneren, maakt deze functie nu een som en retourneert dan het resultaat. Dit wil zeggen dat we nu vanop verschillende plaatsen in onze code twee getallen kunnen optellen door simpelweg deze funtie aan te roepen in plaats van elke keer de berekening manueel in onze code te moeten ingeven. Ook al winnen we niet veel tijd in dit voorbeeld, je kan maar beter geloven dat je functies zeer nuttig zult vinden hoe meer je C# gebruikt. Je kan deze functie als volgt aanroepen:

int result = AddNumbers(10, 5);
Console.WriteLine(result);

Zoals we reeds gezegd hadden, retourneert deze functie effectief iets. En ze moet ook iets retourneren, omdat we C# hebben duidelijk gemaakt dat dit de bedoeling is. Als we in een functie iets anders declareren dan void verplichten we de code om iets te retourneren. Je kan proberen om de 'return' lijn te verwijderen uit bovenstaand voorbeeld, dan zal je zien dat de compiler dit niet toelaat:

'AddNumbers(int, int)': niet alle code lijnen retourneren een value

De compiler herinnert ons eraan dat we een functie hebben die niets retourneert, ook al hebben we dit beloofd. En omdat de compiler betrekkelijk intelligent is laat hij dit niet toe. In plaats van de lijn te verwijderen kunnen we het volgende proberen:

public int AddNumbers(int number1, int number2)
{
    int result = number1 + number2;
    if(result > 10)
    {
return result;
    }
}

Je zal nu opnieuw dezelfde waarschuwing krijgen, maar waarom? Omdat er geen garantie is dat onze if-clausule waar zal zijn en dat de return lijn zal uitgevoerd worden. Je kan dit oplossen door een tweede, standaard return lijn toe te voegen op het einde van de functie:

public int AddNumbers(int number1, int number2)
{
    int result = number1 + number2;
    if(result > 10)
    {
return result;
    }
    return 0;
}

Dit zal het probleem oplossen dat we voor onszelf hebben gecreëerd en het toont ook dat we meer dan één return lijn kunnen hebben binnen onze functie. Van zodra een return lijn bereikt wordt, zal de functie verlaten worden en zal er geen verdere code uitgevoerd worden. In ons voorbeeld wil dit zeggen dat zolang het resultaat van de som hoger is dan 10, de lijn "return 0" nooit bereikt zal worden.

This article has been deprecated!

This article has been re-organized and updated to better match the rest of the tutorial.

We suggest that you read this article instead: Methods (functions)


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!