Skirtumas tarp ref ir out parametro c #

ref (referencinis) parametras

„Ref“ parametras yra naudojamas reikšmei perduoti nuo faktinio parametro iki formalaus parametro, t. Y. Nuo skambučio metodo iki vadinamo metodo. C # parametras, deklaruojamas su „ref“ modifikatoriumi, yra atskaitos parametras. Kai perduodate parametrus nuoroda, skirtingai nuo vertės parametrų, šiam parametrui nauja vieta nesukuriama. Visi formaliojo parametro pakeitimai atsispindės tikrajame parametre.

Ref parametras
Kaip parodyta aukščiau esančiame programos fragmente, bet kokie m pakeitimai bus atspindėti n, nes parametras perduodamas kaip nuoroda.

išvesties (išvesties) parametras

Išvesties parametras naudojamas rezultatui perduoti atgal į iškvietimo funkciją. „out“ raktinis žodis naudojamas deklaruoti parametrą kaip išvesties parametrą. Panašiai kaip nuorodos parametras, išvesties parametras nesukuria naujos saugojimo vietos. Vietoj to, tai tampa parametro slapyvardžiu skambinant metodu.

Parametro pavyzdys
Aukščiau pateiktoje programoje x yra deklaruojamas kaip iškvietimo funkcijos parametras ir, kaip matote, x nebuvo inicijuotas. Kai funkcija „Kvadratas“ pasibaigs, q reikšmė bus nukopijuota į išvesties parametrą x.

Skirtumas tarp ref. Ir out parametrų C #

  1. Etaloniniame parametre formaliojo parametro pakeitimai atspindi tikrąjį parametrą, o parametro „out“ atveju vertė atsispindi iškviečiamosios funkcijos parametro „out“ metu..
  2. Faktiniam parametrui „išvestis“ paprastai nepriskiriama vertė, tuo tarpu faktiniam parametrui, kuris deklaruojamas kaip nuoroda, visada turėtų būti priskiriama vertė prieš skambinant.
    Pastaba: Metodo kūne turite priskirti parametro „out“ reikšmę; kitaip metodas nebus sudaromas.
  3. Tiek „out“, tiek ref parametrai nesukuria naujos vietos atmintyje.
  4. Ref ir out parametrai apdorojami skirtingai, tačiau kompiliavimo metu jie yra vertinami vienodai.
IT