Diferența dintre ref și ieșire în C #

Autor: Laura McKinney
Data Creației: 2 Aprilie 2021
Data Actualizării: 4 Mai 2024
Anonim
Diferența dintre ref și ieșire în C # - Tehnologie
Diferența dintre ref și ieșire în C # - Tehnologie

Conţinut


„Ref” și „Out” sunt modificatorii de parametri folosiți în C #. Folosind ref și out, puteți trece orice tip de valoare prin referința sa la orice metodă. Motivul de a trece orice tip de valoare prin referința sa introduce diferența principală între cuvântul cheie ref și out. ref Cuvântul cheie permite metoda apelată să modifice conținutul argumentului care i-a fost transmis cu cuvântul cheie ref. afară Cuvântul cheie permite metodei apelate să returneze mai multe valori la un singur apel. Să studiem diferența dintre ref și out împreună cu un grafic de comparație.

  1. Diagramă de comparație
  2. Definiție
  3. Diferențele cheie
  4. Concluzie

Diagramă de comparație

Baza pentru comparațieRefafară
De bazăPermite modificarea valorii argumentului procedat cu cuvântul cheie ref.Permite o metodă să returneze acele valori precedate de un cuvânt cheie out.
InițializareaParametrul ref trebuie inițializat înainte de apelul la metodă.Parametrul de ieșire trebuie inițializat în metoda apelată înainte de a se încheia.
DeclaraţieParametrul care va fi modificat de o metodă este declarat ca ref în timp ce declarația metodei și apelul la metodă.Parametrul care va fi returnat trebuie declarat ca ref în timp ce declarația metodei și apelarea metodei.


Definiția Ref Keyword

„Ref” este un modificator de parametri utilizat atunci când este nevoie de apelarea unei metode cu apel de referință. Când dorim ca modificările aduse argumentelor din cadrul unei metode apelate să reflecte valoarea inițială a acelei variabile, atunci se utilizează modificatorul parametrului ref. Tipul de valoare pe care dorim să-l declaram ca ref este precedat de cuvântul cheie „ref” în timpul declarației de metodă și apelarea la metodă. Mai mult de un parametru poate fi declarat „ref” în timp ce se apelează și se declară o metodă.

folosind Sistem; class DemoRef {public void Square (ref int s) {s = s * s; }} clasa Ref_main {static void Main () {DemoRef ob = new DemoRef (); int a = 10; Console.WriteLine ("o apelare a metodei anterioare:" + a); ob.Square (ref a); // Ref utilizat Cuvinte cheie Console.WriteLine ("un apel după:" + a); }} // scoateți un apel înainte de metodă: 10 a apel după metodă: 100

În codul de mai sus, variabila „a” este transmisă ca argument la metoda Square (ref a) împreună cu modificatorul de parametri ref atașat la aceasta. Înseamnă că orice schimbare a metodei Square (ref a) va efectua pe variabila „a” din interiorul acesteia se va reflecta în valoarea inițială a „a”, în afara metodei.


Există câteva puncte importante care trebuie amintite atunci când este vorba de modificarea parametrilor „ref”.

  • Argumentul pe care îl transmiteți către ref către o metodă trebuie inițializat înainte de apelarea metodei.
  • Metoda nu trebuie să atribuie valoarea inițială argumentului ref.
  • Puteți utiliza, de asemenea, ref împreună cu variabila de referință.

Definiția Out Keyword

De fiecare dată când apelați o metodă, aceasta va întoarce o singură valoare. Dacă doriți ca o metodă să returneze mai mult de o valoare la un apel, cuvântul „out” trebuie utilizat împreună cu parametrii pe care doriți să-i returnați când metoda este încheiată. Uneori este cazul că atunci când nu vrem să trecem nimic la metodă, ci dorim ca metoda să returneze ceva, folosim parametrii cu un cuvânt cheie out.Să o înțelegem cu un exemplu.

folosind Sistem; class DemoOut {public int Decompose (dublu x, fracție dublă) {int întreg_num; întreg_num = (int) x; fracție = x - număr întreg; returnare număr întreg; }} clasa Out_maint {static void Main () {DemoOut ob = new DemoOut (); int i; frac dublu; i = ob.Decompune (100.125, frac); // folosit cuvântul cheie Console.WriteLine ("Numărul întreg este" + i); Console.WriteLine („partea fracției este” + frac); }} // ieșire Porțiunea întreagă este 100 Partea fracțională este 0,125

În codul de mai sus, două valori sunt returnate prin metoda Decompose (). Unul îl returnează prin cuvântul cheie „return”, adică integral_num, iar celălalt returnează un parametru care este precedat de cuvântul cheie out în timp ce metoda apelează adică „frac”.

Punctele importante de reținut despre cuvântul cheie afară.

  • Spre deosebire de cuvântul cheie ref, parametrul care utilizează cuvântul cheie afară nu trebuie inițializat înainte de apelarea la metodă.
  • Metoda numită va atribui în sine o valoare parametrului cu un cuvânt cheie out, deoarece este considerată ca neasignată în cadrul metodei apelate, adică se presupune că nu are o valoare inițială.
  • Metoda apelată trebuie să atribuie o valoare parametrului de ieșire înainte ca metoda să se încheie.
  • Cuvântul de ieșire este, de asemenea, aplicabil variabilei de referință.
  1. Când o variabilă precedată de cuvântul cheie ref este trecută la orice metodă, modificările aduse în interiorul metodei se reflectă în valoarea sa originală. Când o variabilă trecută la o metodă este precedată de cuvântul cheie out, metoda o returnează fără a utiliza cuvântul cheie return.
  2. Parametrul ref trebuie inițializat înainte de a fi trecut la o metodă. Pe de altă parte, parametrul de ieșire trebuie inițializat în cadrul metodei prin care este transmis.
  3. În timp ce se apelează, se declară sau se definește o metodă, parametrul ref este declarat explicit ca ref. Pe de altă parte, în timp ce se apelează, se declară sau se definește o metodă, parametrul out este declarat în mod explicit ca fiind.

Concluzie:

Ori de câte ori variabila este trecută prin referința la o metodă, se poate utiliza cuvântul cheie ref și out. Întrucât, motivul utilizării ambelor cuvinte cheie este diferit atunci când cuvântul cheie ref poate fi utilizat pentru a modifica valoarea argumentului precedat de cuvântul cheie ref, trecut la metoda apelată și cuvântul cheie out este folosit pentru a returna valoarea argumentului precedent. prin cuvântul cheie out.