Call-by-reference is een mechanisme in programmeertalen om parameters (en impliciet ook functies) mee te geven aan procedures.
Als een variabele als verwijzing (Engels: reference) wordt meegegeven in de aanroep van een procedure, dan zijn toewijzingen binnen de procedure ook daarbuiten zichtbaar. Er hoeft geen kopie van de waarde gemaakt te worden bij de aanroep van de procedure, dit is wel het geval bij call-by-value.[1] De wijzigingen aan de waarde lopen via het meegegeven adres. Deze wijzigingen blijven in het geheugen staan, ook wanneer er na de procedure een ander adres wordt toegekend aan de eerder meegegeven variabele.
Voorbeeld
using System;
namespace Wikipedia
{
class Programma
{
static void Main(string[] args)
{
int x = 10;
Console.WriteLine("Waarde van x voor aanroepen methode: {0}", x};
// Variabele x wordt hier aangeboden als referentie aan de methode
Vermenigvuldigen(ref x);
Console.WriteLine("Waarde van x na aanroepen methode: {0}", x);
}
Public static void Vermenigvuldigen(ref int a)
{
a *= a;
Console.WriteLine("Waarde van x binnen de methode: {0}", a);
}
}
}
De uitkomst van het programma zal zijn:
Waarde van x voor aanroepen methode: 10 Waarde van x binnen de methode: 100 Waarde van x na aanroepen methode: 100
Zie ook
- ↑ (en) Fairley, Richard E., Semantic Models of Parameter Passing. University of Colorado Boulder (1 maart 1973). Geraadpleegd op 2 november 2024.