Delegaatti
Delegaatti on tavallaan tyyppiturvallinen osoitin funktioon tai moneen funktioon. Se on viittaustyyppinen tietotyyppi. Delegaatin instanssit sijaitsevat aina heapissa. Roskienkeruu hoidetaan automaattisesti delegaattien osalta. Delegaatteja käytetään tapahtumankäsittelyohjelmoinnissa sekä asynkronisessa ohjelmissa (edellyttää säikeiden käyttöä).
Delegaattia käytetään seuraavasti:
Delegaatti paikallisena muuttujana
using System;
namespace DelegEsim
{
class Luokka
{
private delegate int OmaDelegaattiTyyppi(int luku);
static void Main()
{
int i;
OmaDelegaattiTyyppi omaDelegaatti = null;
omaDelegaatti += new OmaDelegaattiTyyppi(OmaFunktio);
i = omaDelegaatti(0);
Console.WriteLine("kutsuttu " + i.ToString() + " kertaa");
}
static int OmaFunktio(int luku)
{
luku += 1;
return luku;
}
}
}
Delegaatti, joka on objektin kenttä (+ tapahtumankäsittely event)