Verschil tussen ref en out-parameter in c #

ref (referentie) Parameter
De parameter "ref" wordt gebruikt om de waarde door te geven door te verwijzen van de actuele parameter naar de formele parameter, d.w.z. van de callee-methode naar de aangeroepen methode. In C # is een parameter gedeclareerd met een "ref" -modifier een referentieparameter. Wanneer u parameters doorgeeft via verwijzing, wordt in tegenstelling tot waardeparameters geen nieuwe locatie voor deze parameter gemaakt. Alle wijzigingen die in de formele parameter worden aangebracht, worden in de actuele parameter weergegeven.

Voorbeeld van ref Parameter

1234567 void Increment (ref int m) m = m + 100; // waarde van n wordt gewijzigd ..... int n = 50; Increment (ref n);

Zoals in het bovenstaande programmafragment wordt getoond, worden eventuele wijzigingen in m weergegeven in n, omdat de parameter door verwijzing wordt doorgegeven.

out (Output) Parameter
Uitvoerparameter wordt gebruikt om het resultaat door te geven aan de aanroepende functie. 'uit'-sleutelwoord wordt gebruikt om de parameter als een uitvoerparameter te declareren. Net als bij een referentieparameter, maakt een uitvoerparameter geen nieuwe opslaglocatie. In plaats daarvan wordt het een alias voor de parameter in de aanroepmethode.

Voorbeeld van uit parameter

12345678910111213 using System; class MyOutput static void Square (int p, out int q) q = p * p; public static void main () int x; Square (5, out x); Console.WriteLine ("Square of een nee is: "+ x);

In het bovenstaande programma wordt x gedeclareerd als een uit-parameter in de oproepfunctie en zoals u ziet, is x niet geïnitialiseerd. Wanneer de functie Square eindigt, wordt de waarde van q gekopieerd naar de uitvoerparameter x.

Verschil tussen ref en out-parameter in C #

  1. In de referentieparameter worden wijzigingen die in de formele parameter zijn aangebracht, weerspiegeld in de werkelijke parameter, terwijl in de parameter outback de waarde wordt weergegeven in de out-parameter van de aanroepende functie.
  2. De werkelijke parameter van de 'uitvoer' die gewoonlijk geen waarde heeft toegewezen, terwijl aan een feitelijke parameter die als referentie is gedeclareerd, altijd een waarde moet worden toegewezen voordat deze wordt gebeld.
    Notitie: U moet waarde toewijzen aan de parameter out in de body van de methode; anders wordt de methode niet gecompileerd.
  3. Zowel out- als ref-parameters creëren geen nieuwe geheugenlocatie.
  4. De ref en out-parameters worden tijdens runtime anders behandeld, maar tijdens de compilatie worden ze hetzelfde behandeld.
HET