c# : methoden

  1. Voorbereiding
  2. Methoden declareren
  3. Methode ToonNaam
  4. Methode BerekenSom
  5. Scope
  6. Overloading
  7. Toepassing

Voorbereiding

Methoden declareren

Methoden worden steeds gedeclareerd binnen een klasse, voor ons dus binnen de accolades:
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }
}
De algemene syntax om een methode te declareren gaat als volgt:
returnType methodeNaam (parameterLijst)
{
   //statements binnen de methode
}

Methode ToonNaam

Maak een methode die je naam in een berichtvenster toont:

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

	void ToonNaam()
	{
		MessageBox.Show("William Schokkelé");
	}

}

Een methode aanroepen

Een methode aanroepen gebeurt door de naam van de methode te noteren gevolgd door ronde haakjes met daarbinnen de eventuele parameters:
public MainWindow()
{
	InitializeComponent();
	ToonNaam();
}

Hier roep je ToonNaam aan vanuit de constructor (zie later) van Window1. Voorlopig is het voldoende te weten dat de code binnen dit codeblok steeds wordt uitgevoerd bij het starten van de toepassing.
Merk op dat je eigen methode onmiddellijk ter beschikking is met Visual Studio Intellisense.

Daar we een grafische toepassing maken in WPF is het natuurlijk leuker de methode te laten aanroepen via bv. een druk op een knop.

Methode BerekenSom

Onze toepassing wordt dynamisch: het is de bedoeling dat de gebruiker twee getallen kan intikken, een druk op een knop toont de som van deze getallen.

Scope

Binnen de methdoe berekenSom_Click werden drie variabelen links, rechts en som gedeclareerd.

Variabelen die gedeclareerd werden binnen een methode hebben deze methode als bereik of scope.
Dit wil zeggen dat deze variabelen buiten deze methode totaal ongekend zijn en dus onbruikbaar.
Voorzie een methode ScopeTest:

void ScopeTest()
{
	MessageBox.Show("De som was: " + som);
}

Wanneer je de toepassing wil uitvoeren krijg je een compileerfout: The name 'som' does not exist in the current context
som is dus ongekend binnen de methode ScopeTest.
Je kan som natuurlijk opnieuw declareren en de berekening opnieuw doen, maar dit kan natuurlijk niet de bedoeling zijn.

Wanneer je de variabele som wenst te gebruiken buiten de methode berekenSom_Click kan je deze declareren op klasseniveau: buiten elke methode, maar binnen de accolades van de klasse.
Pas de toepassing als volgt aan:

public partial class MainWindow : Window
{
	int som;

	private void berekenSom_Click(object sender, RoutedEventArgs e)
	{
		int links = int.Parse(getalLinks.Text);
		int rechts = int.Parse(getalRechts.Text);
		som = BerekenSom(links, rechts);
		MessageBox.Show("De som van " +links +" en " +rechts +" is " +som,"Som berekenen");
		ScopeTest();
	}
	
	...

}

De variabele som is nu gekend in de ganse klasse Window1.

Overloading

Als twee identifiers (variabelen, methoden, ...) binnen dezelfde scope, dezelfde naam hebben zeggen we dat ze overloaded zijn.
Dikwijls is overloading niet de bedoeling (zoals twee keer dezelfde variabele declareren binnen dezelfde methode) en krijg je een compile-time error (een fout tijdens het compileren).
Soms is overloading echter extreem nuttig, dit fenomeen zien we vaak bij het gebruik van methoden.

We willen de tekstwaarden uit de tekstvakken onmiddellijk kunnen doorgeven aan BerekenSom.
De omzetting in een geheel getal moet nu dus gebeuren in de methode BerekenSom.
Vanzelfsprekend willen we de methode BerekenSom die twee gehele getallen ontvangt niet verliezen, we maken dus een bijkomende methode BerekenSom:

int BerekenSom(int getalL, int getalR)
{
	return getalL + getalR;
}

int BerekenSom(string getalL, string getalR)
{
	int links = int.Parse(getalL);
	int rechts = int.Parse(getalR);
	return BerekenSom(links, rechts);
}

private void berekenSom_Click(object sender, RoutedEventArgs e)
{
	string links = getalLinks.Text;
	string rechts = getalRechts.Text;
	som = BerekenSom(links,rechts);
	MessageBox.Show("De som van " +links +" en " +rechts +" is " +som,"Som berekenen");
}

Let op de Visual Studio Intellisense bij het aanroepen van de methode BerekenSom.
Bekijk eens het aantal overloads voor Console.WriteLine()

Toepassing

Toepassing: Kostprijs

Toon /verberg

Meer tutorials:
leer ook: html | xhtml | css | asp | asp.net | c# | ado.net | linq | ajax | java | javascript
Valid HTML 4.01! Valid CSS! © - Cursusweb