Verschil tussen uit en ref in C #

Sleutelverschil - uit vs ref in C #
 

C # is een moderne programmeertaal die is ontwikkeld door Microsoft. Het wordt gebruikt voor het ontwikkelen van verschillende applicaties voor desktop, web en mobiel. Functies of methoden is een concept in de programmering. De groep instructies die wordt gebruikt om een ​​specifieke taak uit te voeren, staat bekend als een functie of een methode. In C # -programma's begint de uitvoering vanaf main (). Het is een voorbeeld van een methode. Bij het aanroepen van een methode worden gegevens doorgegeven aan de methode of ontvangen van de methode. De methode die de nieuwe methode aanroept, staat bekend als de methode aanroepen. De nieuwe methode staat bekend als de methode genoemd. Voor het beheer van de passerende waarden en het terugkrijgen van het resultaat, gebruikt C # parameters. Het zijn gewaardeerde parameters, uitvoerparameters en referentieparameters. De waardeparameters worden gebruikt om parameters per waarde door te geven aan de methode. De referentieparameters worden gebruikt om parameters door verwijzing naar de methode door te geven. De uitvoerparameters worden gebruikt om het resultaat van de methode terug te halen. In C # wordt uit sleutelwoord gebruikt voor uitvoerparameters en wordt het sleutelwoord gebruikt om naar parameters te verwijzen. De belangrijk verschil tussen uit en ref in C # is dat, out is een sleutelwoord dat wordt gebruikt om een ​​uitvoerparameter aan te wijzen die wordt gebruikt om resultaten door te geven van de methode called naar aanroepmethode, terwijl ref een sleutelwoord is om een ​​referentieparameter door te verwijzen die wordt gebruikt om gegevens door te geven van aanroepmethode naar aanroepmethode en om de gegevens te ontvangen van de aangeroepen methode naar aanroepmethode.

INHOUD

1. Overzicht en belangrijkste verschil
2. Wat is er in C #
3. Wat is ref in C #
4. Overeenkomsten tussen uit en ref in C #
5. Vergelijking zij aan zij - uit vs ref in C # in tabelvorm
6. Samenvatting

Wat is er in C #?

De syntaxis voor functie of een methode is als volgt. Een methode heeft een aantal elementen, zoals de naam van de methode, de parameterlijst, het retourneringstype en de toegangsspecificatie.

(parameterlijst)

// Uit te voeren statements

Elke methode heeft een unieke methode om de functie aan te roepen. De uitvoerbare instructies bevinden zich binnen accolades. Het retourneertype legt uit of de functie een waarde retourneert of niet. Als er geen retourtype is, wordt dit ongeldig genoemd. Toegangsspecificatie wordt gebruikt om de toegankelijkheid van de methode in de toepassing te specificeren. De parameters worden gebruikt om gegevens te ontvangen of door te geven aan de methode. Er kunnen ook methoden zonder parameters zijn. Parameters kunnen gewaardeerde parameters, uitvoerparameters of referentieparameters zijn.

De uitvoerparameters worden gebruikt om resultaten door te geven aan de aanroepmethode. Daarvoor moet de parameter worden gedeclareerd met het trefwoord uit. De uitvoerparameter creëert geen nieuwe opslaglocatie. Over het algemeen retourneert een methode één waarde. Maar in C # is het mogelijk om twee waarden uit een functie te retourneren met behulp van uitvoerparameters. Raadpleeg het onderstaande programma.

naamruimtetoepassing1

            openbare klassenberekening

openbare leegte-weergave (out int a, out int b)

int waarde = 5;

a = waarde;

b = waarde;

a = a * a;

b = b * b;

public static void main (String [] args)

int waarde1 = 10, waarde2 = 20;

Cal berekening = nieuwe berekening ();

cal.display (uit value1, out value2);

Console.ReadLine ();

De weergavefunctie wordt aangeroepen vanuit de hoofdmethode. De waarde 1 en waarde twee hebben 10 en 20, maar ze worden niet in de methode opgenomen. De waarde van a is 25 en de waarde van b is ook 25 in de functie. Daarom worden die waarden geretourneerd. Wanneer u waarde 1 en waarde 2 afdrukt, krijgt u geen 10 en 20. In plaats daarvan worden 25 en 25 afgedrukt. Met behulp van het trefwoord out kunnen er meerdere waarden worden geretourneerd van de methode.

Wat is ref in C #?

Wanneer parameters per waarde worden doorgegeven, wordt voor elke parameter een nieuwe opslaglocatie gemaakt. De feitelijke parameters die werden verzonden vanuit het hoofdprogramma veranderen niet. In plaats daarvan worden die waarden gekopieerd naar een afzonderlijke locatie. Die nieuwe variabele exemplaren worden formele parameters genoemd. Raadpleeg de onderstaande code.

naamruimtetoepassing1

openbare klassenberekening

public void swap (int x, int y)

int temp;

temp = x;

x = y;

y = temp;

public static void main (String [] args)

Cal berekening = nieuwe berekening ();

int p = 2;

int q = 3;

cal.swap (p, q);

Console.WriteLine (p);

Console.WriteLine (q);

Console.ReadLine ();

Volgens het bovenstaande programma heeft de klasse Berekening een methode-uitwisseling (). In het hoofdprogramma wordt een object van typeberekening gemaakt. Er zijn twee waarden, zoals p en q. De variabele p heeft waarde 2 en q variabele heeft waarde 3. Die twee waarden worden doorgegeven aan de swap-methode. Bij de swap-methode wordt de waarde 2 gekopieerd naar variabele x en wordt waarde 3 gekopieerd naar variabele y. Met behulp van de variabele temp worden de waarden geruild. Terug in het hoofdprogramma, wanneer u p en q afdrukt, worden de waarden niet omgewisseld. De p-waarde is nog steeds 2 en q-waarde is 3. Zelfs bij de swap-methode worden waarden geruild, maar worden ze niet weerspiegeld in het hoofdprogramma.

In tegenstelling tot passerende waarden zoals hierboven, is het mogelijk om parameters door te geven door te verwijzen. Een referentievariabele is een verwijzing naar de geheugenlocatie. Er is geen nieuwe geheugenlocatie aangemaakt. De wijzigingen in de methode worden weergegeven in het hoofdprogramma. In C # worden de referentieparameters verwezen met behulp van het trefwoord ref. Raadpleeg het onderstaande programma.

naamruimtetoepassing1

openbare klassenberekening

public void swap (ref int x, ref int y)

int temp;

temp = x;

x = y;

y = temp;

public static void main (String [] args)

Cal berekening = nieuwe berekening ();

int p = 2;

int q = 3;

cal.swap (ref p, ref q);

Console.WriteLine (p);

Console.WriteLine (q);

Console.ReadLine ();

Volgens het bovenstaande programma heeft de klasseberekening de swap-methode. In het hoofdprogramma wordt een object van typeberekening gemaakt. Het zijn twee variabelen zoals p en q. De p-variabele heeft de waarde 2 en q-variabele heeft de waarde 3. In plaats van waarden door te geven, wordt de verwijzing naar de geheugenlocaties van p en q doorgegeven aan de methode. Die referentievariabelen worden verwezen met behulp van ref. In de swapmethode worden de wijzigingen aangebracht in de werkelijke parameters in plaats van de waarden naar een nieuwe locatie te verplaatsen. Bij het afdrukken van de p- en q-waarden van het hoofdprogramma worden de verwisselde waarden weergegeven. Nu is de p-waarde 3 en is q-waarde 2.

Wat is de gelijkheid tussen uit en ref in C #?

  • Beide zijn sleutelwoorden die worden gebruikt om de parameters van een methode door te verwijzen.

Wat is het verschil tussen uit en ref in C #?

out vs ref in C #

De uitgang is een sleutelwoord in C # dat wordt gebruikt om naar een uitvoerparameter te verwijzen. Het wordt gebruikt om de resultaten van een opgeroepen methode door te geven aan de methode. De ref is een sleutelwoord in C # dat wordt gebruikt om een ​​referentieparameter door te verwijzen. Het wordt gebruikt om gegevens door te geven van de aanroepmethode naar de aanroepende methode en om gegevens van de aangeroepen methode naar de aanroepmethode te retourneren.
functionaliteit
Wanneer het trefwoord wordt gebruikt, kunnen de gegevens worden doorgegeven van de aanroepmethode naar de aanroepende methode. Maar die gegevens worden weggegooid. Het wordt gebruikt om het resultaat door te geven aan de aanroepende methode van de aangeroepen methode. Wanneer het trefwoord ref wordt gebruikt, worden de gegevens doorgegeven van de aanroepmethode naar de aanroepende methode en worden de gemanipuleerde gegevens doorgegeven aan de aanroepmethode.
Doorgeven van gegevens
Wanneer het sleutelwoord wordt gebruikt, worden de gegevens op een manier doorgegeven die een methode is voor de aanroepmethode. Bij het gebruik van het sleutelwoord ref, worden de gegevens op twee manieren doorgegeven, van de aanroepmethode tot de aanroepende methode en uit de aanroepende methode naar de aanroepende methode.

Samenvatting - uit vs ref in C # 

Bij het aanroepen van een methode kan het nodig zijn om de waarden in de methode door te geven en de resultaten van de methode terug te halen. C # heeft verschillende parameters om dat te bereiken. De waardeparameters worden gebruikt om parameters per waarde door te geven aan de methode. De referentieparameters worden gebruikt om parameters door verwijzing naar de methode door te geven. De uitvoerparameters worden gebruikt om het resultaat van de methode terug te halen. In C # wordt uit sleutelwoord gebruikt voor uitvoerparameters en wordt het sleutelwoord gebruikt om naar parameters te verwijzen. Het verschil tussen uit en ref in C # is dat, uit een sleutelwoord is dat wordt gebruikt om een ​​uitvoerparameter aan te wijzen die wordt gebruikt om resultaten door te geven van aanroepmethode naar aanroepmethode terwijl ref een sleutelwoord is om een ​​referentieparameter te verwijzen die wordt gebruikt om gegevens door te geven aanroepmethode naar methode genaamd en om de gegevens van de methode called to calling te ontvangen.

Download de PDF van out vs ref in C #

U kunt de PDF-versie van dit artikel downloaden en gebruiken voor offline doeleinden volgens citaatnotitie. Download de PDF-versie hier: Difference Between Out en Ref in C #

Referentie:

1.tutorialspoint.com. "C # Methoden."  Het punt. Beschikbaar Hier 
2.dnfvideo. C # Out-parameters Vs REF-parameters, .NET Interview Preparation-video's, 28 september 2015. Beschikbaar Hier  

Afbeelding met dank aan:

1.'C sharp'Door Mothmolevna - Eigen werk, (Public Domain) via Commons Wikimedia