Diferența dintre out și ref în C #

Diferența cheie - afară vs ref în C #
 

C # este un limbaj de programare modern dezvoltat de Microsoft. Se utilizează pentru dezvoltarea de aplicații pentru desktop, web și mobil. Funcțiile sau metodele sunt un concept în programare. Acest grup de afirmații care sunt folosite pentru a efectua o anumită sarcină este cunoscut ca o funcție sau o metodă. În programele C #, execuția începe de la main (). Este un exemplu al unei metode. Când se apelează o metodă, datele sunt transmise metodei sau primite de la metodă. Metoda care apelează noua metodă este cunoscută sub numele de apelarea metodei. Noua metodă este cunoscută sub numele de numita metoda. Pentru a gestiona valorile trecute și pentru a obține din nou rezultatul, C # utilizează parametrii. Acestea sunt parametrii evaluați, parametrii de ieșire și parametrii de referință. Parametrii valorici sunt folosiți pentru trecerea parametrilor în metodă prin valoare. Parametrii de referință sunt utilizați pentru a transmite parametrii metodei prin referință. Parametrii de ieșire sunt utilizați pentru a transmite rezultatul din metoda. În C #, cuvântul cheie este folosit pentru parametrii de ieșire și cuvântul cheie ref este utilizat pentru a se referi la parametri. diferența cheie intre out si ref in C # este asta, out este un cuvânt cheie folosit pentru a indica un parametru de ieșire care este folosit pentru a transmite rezultatele din metoda apelată la metoda de apelare, în timp ce ref este un cuvânt cheie care se referă la un parametru de referință care este utilizat pentru a transmite date de la metoda de apelare la metoda apelată și pentru a primi datele de la metoda apelată la metoda de apelare.

CUPRINS

1. Prezentare generală și diferență cheie
2. Ce este în C #
3. Ce este ref în C #
4. Asemănări între afară și ref în C #
5. Comparație între ele - comparație vs. ref în C # în formă tabelară
6. rezumat

Ce este în C #?

Sintaxa pentru funcție sau o metodă este după cum urmează. O metodă are un număr de elemente, cum ar fi numele metodei, lista parametrilor, tipul retur și specificatorul de acces.

(lista parametrilor)

// declarații de execuție

Fiecare metodă are o metodă unică pentru a efectua apelul funcției. Exercițiile executabile se află în interiorul coastelor curbate. Tipul de returnare explică dacă funcția returnează o valoare sau nu. Când nu există niciun tip de returnare, se numește void. Specificatorul de acces este utilizat pentru a specifica accesibilitatea metodei în aplicație. Parametrii sunt utilizați pentru a primi sau a transmite date către metodă. Pot exista și metode fără parametri. Parametrii pot fi evaluați parametrii, parametrii de ieșire sau parametrii de referință.

Parametrii de ieșire sunt utilizați pentru a transmite rezultatele înapoi la metoda de apelare. Pentru aceasta, parametrul ar trebui declarat cu cuvântul cheie afară. Parametrul de ieșire nu creează o nouă locație de stocare. În general, o metodă returnează o valoare. Dar în C #, este posibil să se întoarcă două valori dintr-o funcție folosind parametrii de ieșire. Consultați programul de mai jos.

namespace application1

            calcularea clasei publice

public void display (afară int, out int b)

valoarea int = 5;

a = valoare;

b = valoare;

a = a * a;

b = b * b;

public static void principal (String [] args)

valoarea int1 = 10, valoarea2 = 20;

Calcul cal = calcul nou ();

afișare cald (valoarea 1, valoarea 2);

Console.ReadLine ();

Funcția de afișare este apelată din metoda principală. Valoarea1 și valoarea doi au 10 și 20, dar nu sunt luate în considerare. Valoarea lui a este 25 iar valoarea lui b este de asemenea 25 în funcție. Prin urmare, aceste valori sunt returnate. Atunci când se imprimă valoarea1 și valoarea2, nu se vor da 10 și 20. În schimb, se vor imprima 25 și 25. Folosind cuvântul cheie extracte, mai multe valori pot fi returnate din metoda.

Ce este ref în C #?

Când se transmit parametrii după valoare, se creează o nouă locație de stocare pentru fiecare parametru. Parametrii actuali care au fost expediați din programul principal nu se schimbă. În schimb, aceste valori sunt copiate într-o locație separată. Aceste noi copii variabile sunt numite parametri formali. Consultați codul de mai jos.

namespace application1

calcularea clasei publice

void swap public (int x, int y)

int temp;

temp = x;

x = y;

y = temp;

public static void principal (String [] args)

Calcul cal = calcul nou ();

int p = 2;

int q = 3;

cal.swap (p, q);

Console.WriteLine (p);

Console.WriteLine (q);

Console.ReadLine ();

În conformitate cu programul de mai sus, clasa de calcul are o metodă swap (). În programul principal, este creat un obiect de tipul Calculation. Există două valori precum p și q. Variabila p are valoarea 2 și variabila q are valoarea 3. Aceste două valori sunt transmise metodei swap. În metoda swap, valoarea 2 este copiată în variabila x iar valoarea 3 este copiată la variabila y. Folosind variabila temp, valorile sunt schimbate. Înapoi în programul principal, atunci când imprimați p și q, valorile nu sunt schimbate. Valoarea p este încă 2 și valoarea q este 3. Chiar și în metoda swap, valorile sunt schimbate, dar nu reflectă în programul principal.

Spre deosebire de valorile de trecere de mai sus, este posibilă transmiterea parametrilor prin referință. O variabilă de referință este o referință la locația de memorie. Nu există nicio locație de memorie nouă. Modificările metodei reflectate în programul principal. În C #, parametrii de referință sunt menționați folosind cuvântul cheie ref. Consultați programul de mai jos.

namespace application1

calcularea clasei publice

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

int temp;

temp = x;

x = y;

y = temp;

public static void principal (String [] args)

Calcul cal = calcul nou ();

int p = 2;

int q = 3;

cal.swap (ref p, ref q);

Console.WriteLine (p);

Console.WriteLine (q);

Console.ReadLine ();

În conformitate cu programul de mai sus, clasa de calcul are metoda swap. În programul principal, este creat un obiect de tipul Calculation. Sunt două variabile, cum ar fi p și q. Variabila p are valoarea 2 și variabila q are valoarea 3. În locul valorilor trecute, trimiterea la locațiile de memorie ale lui p și q este transmisă metodei. Aceste variabile de referință sunt menționate folosind ref. În metoda swap, mai degrabă decât copierea valorilor într-o locație nouă, modificările se fac la parametrii reali. Când tipăriți valorile p și q ale programului principal, acesta va da valorile schimbate. Acum valoarea p este 3 iar valoarea q este 2.

Care este similitudinea dintre afară și ref în C #?

  • Ambele sunt cuvintele cheie utilizate pentru a indica parametrii unei metode.

Care este diferența dintre afară și ref în C #?

out vs ref în C #

Out este un cuvânt cheie din C # care este folosit pentru a indica un parametru de ieșire. Se utilizează pentru a transmite rezultatele dintr-o metodă chemată la apelarea metodei. Ref este un cuvânt cheie în C # care este folosit pentru a indica un parametru de referință. Se utilizează pentru a transmite datele din metoda de apelare la metoda apelată și pentru a returna datele de la metoda apelată la metoda de apelare.
Funcționalitate
Când se utilizează cuvântul cheie, datele pot fi transmise de la metoda de apelare la metoda apelată. Dar aceste date sunt aruncate. Acesta este folosit pentru a trece rezultatul la metoda de apelare de la metoda chemată. Când se folosește cuvântul cheie ref, datele sunt transmise de la metoda de apelare la metoda apelată, iar datele manipulate sunt transferate înapoi la metoda de apelare.
Transmiterea datelor
Când utilizați cuvântul cheie, datele sunt transmise într-un mod care este o metodă apelată la metoda de apelare. Când se folosește cuvântul cheie ref, datele se transmit în două moduri, de la metoda de apelare la metoda apelată și de la metoda apelată la metoda de apelare.

Rezumat - afară vs ref în C # 

Atunci când invocați o metodă, ar putea fi necesar să treceți valorile în metodă și să reveniți la rezultate din metoda. C # are parametri diferiți pentru a realiza acest lucru. Parametrii valorici sunt folosiți pentru trecerea parametrilor în metodă prin valoare. Parametrii de referință sunt utilizați pentru a transmite parametrii metodei prin referință. Parametrii de ieșire sunt utilizați pentru a transmite rezultatul din metoda. În C #, cuvântul cheie este folosit pentru parametrii de ieșire și cuvântul cheie ref este utilizat pentru a se referi la parametri. Diferența dintre out și ref în C # este că, out este un cuvânt cheie folosit pentru a trimite un parametru de ieșire care este utilizat pentru a transmite rezultate din metoda apelată la metoda de apelare, în timp ce ref este un cuvânt cheie care se referă la un parametru de referință care este utilizat pentru a transmite date din metoda de apelare la metoda apelată și pentru a primi datele de la metoda apelată la metoda de apelare.

Descărcați PDF-ul din versiunea ref în C #

Puteți descărca versiunea PDF a acestui articol și îl puteți utiliza în scopuri offline conform notei de citare. Descărcați versiunea PDF aici: Diferența dintre Out și Ref în C #

Referinţă:

1.tutorialspoint.com. "Metode C #".  Punctul. Disponibil aici 
2.dnfvideo. Parametrii C # Out Vs parametrii REF, interfața de interfață pentru interviul .NET, 28 septembrie 2015. Disponibil aici  

Datorită fotografiei:

1.'C sharp'By Mothmolevna - Muncă proprie, (Domeniul public) via Commons Wikimedia