Rozdiel medzi referenčnými hodnotami C #

Autor: Laura McKinney
Dátum Stvorenia: 2 Apríl 2021
Dátum Aktualizácie: 5 Smieť 2024
Anonim
Rozdiel medzi referenčnými hodnotami C # - Technológie
Rozdiel medzi referenčnými hodnotami C # - Technológie

Obsah


„Ref“ a „Out“ sú modifikátory parametrov používané v C #. Pomocou odkazu a von môžete pomocou odkazu na ľubovoľnú metódu odovzdať akýkoľvek typ hodnoty. Dôvod odovzdania ľubovoľného typu hodnoty jeho referenciou predstavuje hlavný rozdiel medzi kľúčovým slovom ref a out. ref Kľúčové slovo umožňuje volanej metóde zmeniť obsah argumentu, ktorý sa jej odovzdáva, pomocou kľúčového slova ref. von Kľúčové slovo umožňuje volanej metóde vrátiť pri jednom hovore viac ako jednu hodnotu. Poďme študovať rozdiel medzi ref a out spolu s porovnávacou tabuľkou.

  1. Porovnávacia tabuľka
  2. definícia
  3. Kľúčové rozdiely
  4. záver

Porovnávacia tabuľka

Základ pre porovnanieRefVon
základnéUmožňuje zmenu hodnoty argumentu vykonaného pomocou kľúčového slova ref.Umožňuje metóde vrátiť tie hodnoty, ktorým predchádzalo kľúčové slovo out.
inicializáciaParameter ref musí byť inicializovaný pred volaním metódy.Pred ukončením musí byť parameter out inicializovaný vo vnútri volanej metódy.
vyhlásenieParameter, ktorý sa má zmeniť metódou, sa deklaruje ako ref, zatiaľ čo vo vyhlásení metódy a volanie metódy.Parameter, ktorý sa má vrátiť, sa musí deklarovať ako ref, zatiaľ čo deklarácia metódy a volanie metódy.


Definícia referenčného slova

„Ref“ je modifikátor parametrov používaný v prípade, že je potrebné zavolať metódu s referenciou call-by-reference. Ak chceme, aby sa zmeny vykonané v argumentoch vo volanej metóde odrážali v pôvodnej hodnote tejto premennej, použije sa modifikátor parametra ref. Typ hodnoty, ktorý chceme deklarovať ako ref, predchádza deklarácia kľúča „ref“ počas deklarácie metódy a volania metódy. Pri volaní a deklarovaní metódy môže byť deklarovaných viac ako jeden parameter ako „ref“.

pomocou systému; class DemoRef {public void Square (referencie) {s = s * s; }} trieda Ref_main {static void Main () {DemoRef ob = new DemoRef (); int a = 10; Console.WriteLine ("volanie metódy pred:" + a); ob.Square (odkaz a); // Používa ref. Konzolu kľúčových slov.WriteLine („a after call:“ + a); }} // výstup pred volaním metódy: 10 a po volaní metódy: 100

Vo vyššie uvedenom kóde sa premenná „a“ odovzdá ako argument metóde Square (ref a) spolu s referenčným modifikátorom ref, ktorý je k nej pripojený. Znamená to, že akékoľvek zmeny, ktoré vykoná metóda Square (ref a) pri premennej „a“ vo vnútri, sa odrazí v pôvodnej hodnote „a“ mimo metódy.


Pri práci s modifikátorom parametra „ref“ je potrebné pamätať na niektoré dôležité body.

  • Argument, ktorý odkazujete na metódu, musí byť inicializovaný pred volaním metódy.
  • Metóda nesmie priradiť počiatočnú hodnotu argumentu ref.
  • Môžete tiež použiť odkaz spolu s referenčnou premennou.

Definícia mimo kľúčového slova

Zakaždým, keď zavoláte metódu, vráti sa iba jedna hodnota. Ak chcete, aby metóda vrátila pri hovore viac ako jednu hodnotu, musí sa použiť kľúčové slovo „mimo“ spolu s parametrami, ktoré sa majú po ukončení metódy vrátiť. Niekedy je to tak, že keď nechceme nič odovzdať metóde, ale chceme, aby metóda vrátila niečo, čo používame, parametre s kľúčovým slovom mimo.Pochopme to príkladom.

pomocou systému; class DemoOut {public int Decompose (double x, out double zlomok) {int whole_num; celé_číslo = (int) x; frakcia = x - celé číslo; return full_num; }} class Out_maint {static void Main () {DemoOut ob = new DemoOut (); int i; dvojitá frac; i = ob.Dekompozícia (100,125, zlomok frakcie); // použité kľúčové slovo Console.WriteLine („Celá časť čísla je“ + i); Console.WriteLine („zlomková časť je“ + frac); }} // výstup Celá časť je 100 Frakčná časť je 0,125

Vo vyššie uvedenom kóde sa metódou Decompose () vracajú dve hodnoty. Jeden, ktorý sa vracia pomocou kľúčového slova „return“, tj. Full_num, a druhý vracia parameter, ktorému predchádza kľúčové slovo out pri volaní metódy, t. J. „Frac“.

Dôležité body, ktoré si treba zapamätať o kľúčovom slove, ktoré sa nachádza von.

  • Na rozdiel od kľúčového slova ref nesmie byť parameter využívajúci kľúčové slovo inicializovaný pred volaním metódy.
  • Volaná metóda sama priradí hodnotu parametru s kľúčovým slovom out, pretože sa považuje za nepriradenú v rámci volanej metódy, t. J. Predpokladá sa, že nemá počiatočnú hodnotu.
  • Volaná metóda musí priradiť hodnotu parametru out pred ukončením metódy.
  • Kľúčové slovo out je použiteľné aj pre referenčnú premennú.
  1. Keď je premenná, ktorej predchádza kľúčové slovo ref, odovzdaná akejkoľvek metóde, zmeny vykonané v metóde sa prejavia v jej pôvodnej hodnote. Keď premennej odovzdanej do metódy predchádza kľúčové slovo out, metóda ho vráti bez použitia návratového kľúčového slova.
  2. Parameter ref by mal byť inicializovaný pred tým, ako sa dostane do metódy. Na druhej strane sa musí parameter out inicializovať vo vnútri metódy, do ktorej sa odovzdáva.
  3. Pri volaní, deklarovaní alebo definovaní metódy je parameter ref explicitne deklarovaný ako ref. Na druhej strane, pri volaní, deklarovaní alebo definovaní metódy je parameter out výslovne deklarovaný ako out.

záver:

Kedykoľvek sa má premenná odovzdať odkazom na metódu, môže sa použiť kľúčové slovo ref a out. Zatiaľ čo dôvod použitia oboch kľúčových slov je odlišný, ak je možné kľúčové slovo ref použiť na zmenu hodnoty argumentu, ktorému predchádza kľúčové slovo ref, odovzdané do volanej metódy a kľúčové slovo out sa používa na vrátenie hodnoty argumentu, ktorému predchádzalo. podľa kľúčového slova out.