TOC

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

Klassen:

Methods (functies)

Terwijl properties en velden (fields) de passieve onderdelen zijn van een class, zijn methods daarvan de actieve onderdelen. Ze zullen één of meer acties uitvoeren en optioneel een resultaat retourneren. In andere programmeertalen worden ze vaak functies (functions) genoemd of zelfs alleen maar "funcs", maar in C#, waar ze bij een class horen, worden ze methods genoemd. Methods zijn erg nuttig omdat ze je in staat stellen een stuk functionaliteit in te kapselen in een method, die je daarna vanuit allerlei plaatsen kan oproepen.

Een method wordt op deze manier gedefinieerd:

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

Hier is een erg basaal voorbeeld:

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

Deze zeer basale method doet een optelling van twee getallen en retourneert het resultaat. laten we de verschillende onderdelen ervan onder de loep nemen:

  • public is de zichtbaarheid (meer hierover later in dit tutorial)
  • int is het "return" type variabele. Als je wilt dat je method niets retourneert, gebruik dan het void sleutelwoord in plaats daarvan
  • AddNumbers is de naam van de method
  • (int number1, int number2). Dit zijn de parameters (meer hierover later). Parameters zijn optioneel, dus mag je de ruimte tussen de haakjes leeg laten. De haakjes zelf zijn echter NIET optioneel.
  • Binnen de method (tussen de accolades) staat de echte code van de method. Er kunnen één of meerdere regels van code zijn.

Om een method aan te roepen hoef je alleen maar zijn naam in te toetsen, gevolgd door een paar haakjes. Binnen deze haakjes () komen dan de parameters (als de method die vereist), zoals hier:

AddNumbers(3, 39);

Since methods are defined on classes, you may want to call a method on another class than the one you are currently in. If so, you should prefix the method call with the name of the object, or in case of a static method (more on those later), the name of the class. Here's an example where we call the AddNumbers() method, which has been placed in another class called MathHelper:

public void DoMath()
{
	MathHelper mathHelper = new MathHelper();
	int result = mathHelper.AddNumbers(4, 38);
	Console.WriteLine(result);
}	

Method return types

Laten we het hebben over types van variabelen die door een applicatie worden geretourneerd. In bovenstaande voorbeelden definieerden we een method met een integer als het weer te geven type van variabele. Maar het staat je vrij om elk ander type van variabele te retourneren. Je kunt zelfs een method declareren die niets retourneert zoals we zagen met onze DoMath() method van boven. Merk op dat ik int heb vervangen door het void keyword. Dat betekent dat deze method niet verwacht wordt iets te retourneren. In sommige programmeertalen worden functies die niets retourneren procedures genoemd, maar bij C# heten ze altijd methods.

Je moet weten dat als je een return variabele declareert voor een method, je IETS moet retourneren, anders zal de compiler onmiddellijk protesteren:

public int AddNumbers(int number1, int number2)
{
	Console.WriteLine(number1 + number2);
}
Compiler error: AddNumbers(int, int)': not all code paths return a value

This means that you need one (or several) return keywords inside your method if it has a declared return type. You may need more than one for situations where you have multiple possible code paths, like this:

public int AddLargeNumbers(int number1, int number2)
{			
	if((number1 > 1000) && (number2 > 1000))
	{
		return number1 + number2;
	}
	return 0;
}

In this case, we need the second return statement as well - if it's omitted, the compiler will complain, because our conditional statement could prevent the first return statement from being hit.

Summary

Methods allow you to encapsulate and reuse functionality from several places. By supplying different parameters to a method, you can get different results. We have used some parameters in the examples above, but in the next article, we'll dig much deeper into the subject of method parameters.

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!