Skirtumas tarp C ir ref.

Autorius: Laura McKinney
Kūrybos Data: 2 Balandis 2021
Atnaujinimo Data: 5 Gegužė 2024
Anonim
Какой выбрать котёл ДЫМОХОДНЫЙ или БЕЗдымоходный
Video.: Какой выбрать котёл ДЫМОХОДНЫЙ или БЕЗдымоходный

Turinys


„Ref“ ir „Out“ yra parametrų modifikatoriai, naudojami C #. Naudodami ref ir out, galite perduoti bet kurią reikšmės rūšį, remdamiesi bet kokiu metodu. Bet kurios vertės rūšies pateikimo nuoroda priežastis rodo pagrindinį skirtumą tarp raktinio žodžio ref ir out. ref raktinis žodis leidžia vadinamajam metodui pakeisti argumento, pateikto jam pateikiant raktinį žodį, turinį. raktinis žodis leidžia vadinamam metodui grąžinti daugiau nei vieną vertę vienu skambučiu. Išnagrinėsime skirtumą tarp ref ir out kartu su palyginimo diagrama.

  1. Palyginimo diagrama
  2. Apibrėžimas
  3. Pagrindiniai skirtumai
  4. Išvada

Palyginimo diagrama

Palyginimo pagrindasAtsIšėjęs
PagrindinisTai leidžia pakeisti argumento vertę, naudojant ref raktinį žodį.Tai leidžia metodui grąžinti tas reikšmes, prieš kurias yra išeinantis raktinis žodis.
PradėjimasRef metodas turi būti inicijuotas prieš skambinant metodui.Išeinantis parametras turi būti inicializuotas vadinamojo metodo viduje, prieš jam pasibaigiant.
DeklaracijaParametras, kurį reikia pakeisti metodu, deklaruojamas kaip ref, o metodo deklaracija ir metodo iškvietimas.Grąžintinas parametras turi būti deklaruojamas kaip ref, o metodo deklaracija ir metodo iškvietimas.


Apibrėžimas Ref Raktažodžiai

„Ref“ yra parametrų modifikatorius, naudojamas, kai reikia iškviesti metodą su iškvietimo nuoroda. Kai norime, kad argumentų pakeitimai, vadinami vadinamu metodu, turi atsispindėti to kintamojo pradinėje vertėje, tada naudojamas ref parametro modifikatorius. Prieš reikšmės tipą, kurį norime deklaruoti kaip ref, prieš deklaruojant metodą ir naudojant metodą, yra žodis „ref“. Skambinant ir deklaruojant metodą, „ref“ gali būti paskelbtas daugiau nei vienas parametras.

naudojant sistemą; klasė „DemoRef“ {public void Square (ref int s) {s = s * s; }} klasė Ref_main {static void Main () {DemoRef ob = new DemoRef (); int a = 10; Console.WriteLine ("prieš metodą skambinkite:" + a); ob.Square (ref a); // Naudota nuoroda „Console“ .WriteLine („po skambučio:“ + a); }} // išvedamas prieš metodą iškviečiamas skaičius: 10 a po metodo iškvietimo: 100

Aukščiau pateiktame kodekse kintamasis „a“ perduodamas kaip argumentas metodo kvadratui (nuoroda a) kartu su prie jo pridėtu parametrų modifikatoriumi. Tai reiškia, kad bet kokie metodo „Kvadratas (nuoroda a), kurį atliks kintamasis„ a “, pakeitimai jo viduje atspindės pradinę„ a “reikšmę, netaikant metodo.


Kai kurie svarbūs dalykai, kuriuos reikia atsiminti dirbant su parametrų modifikatoriumi „ref“.

  • Argumentas, kurį perduodate nurodydamas metodą, turi būti inicijuotas prieš skambinant metodui.
  • Metodas neturi priskirti pradinės reikšmės ref argumentui.
  • Taip pat galite naudoti nuorodą kartu su nuorodos kintamuoju.

Apibrėžimas raktinis žodis

Kiekvieną kartą paskambinus metodu, jis grąžins tik vieną vertę. Jei norite, kad metodas skambučio metu grąžintų daugiau nei vieną reikšmę, reikia naudoti „out“ raktinį žodį kartu su parametrais, kuriuos norite grąžinti, kai metodas bus baigtas. Kartais būna taip, kad kai nenorime nieko perduoti metodui, bet norime, kad metodas kažką grąžintų, mes naudojame parametrus su išeinančiu raktiniu žodžiu.Supraskime tai pavyzdžiu.

naudojant sistemą; klasė DemoOut {public int Decompose (dviguba x, iš dvigubos trupmenos) {int viso_num; viso_num = (int) x; trupmena = x - visas_num; grąžinti visą skaičių; }} class Out_maint {static void Main () {DemoOut ob = new DemoOut (); int i; dvigubas lūžis; i = ob.Skaidyti (100,125, išlūžis); // panaudotas raktinis žodis Console.WriteLine („Sveiko skaičiaus dalis yra“ + i); Console.WriteLine („trupmenos dalis yra“ + frazė); }} // išvesties sveikasis skaičius yra 100. Dalinė dalis yra 0,125

Aukščiau pateiktame kode metodas „Decompose“ () grąžina dvi reikšmes. Vieną jis grąžina pagal raktinį žodį „grįžti“, t.y. sveiką skaičių, o kitas - parametrą, prieš kurį įrašomas raktinis žodis, o metodą vadina „frac“.

Svarbūs dalykai, kuriuos reikia atsiminti apie raktinį žodį.

  • Priešingai nei raktinis žodis, raktinio žodžio parametras neturi būti inicijuotas prieš pradedant skambinti metodu.
  • Pats iškviestasis metodas parametrui priskiria vertę, išskyrus raktinį žodį, nes jis laikomas nepriskirtinu vadinamojo metodo viduje, t. Y. Manoma, kad jis neturi pradinės vertės.
  • Kviečiamas metodas turi priskirti reikšmę parametrui out prieš pasibaigiant metodui.
  • Neįvestas raktinis žodis taip pat taikomas nuorodos kintamajam.
  1. Kai kintamasis, prieš kurį nurodomas ref raktinis žodis, perduodamas bet kuriam metodui, metodo viduje atlikti jo pakeitimai atspindi jo pradinę vertę. Kai prieš metodą perduotas kintamasis yra prieš raktinį žodį, metodas grąžina jį nenaudodamas grįžtamojo raktinio žodžio.
  2. Ref parametras turėtų būti inicijuotas prieš perduodant jį metodui. Kita vertus, parametras „out“ turi būti inicializuotas metodo, kuriam jis perduodamas, viduje.
  3. Skambinant, deklaruojant ar apibrėžiant metodą, ref parametras yra aiškiai deklaruojamas kaip ref. Kita vertus, skambinant, deklaruojant ar apibrėžiant metodą, parametras „out“ aiškiai deklaruojamas kaip „out“.

Išvada:

Kai kintamasis turi būti perduotas remiantis nuoroda į metodą, gali būti naudojamas ref ir out raktinis žodis. Kadangi abiejų raktinių žodžių naudojimo priežastis yra skirtinga, kai ref raktinis žodis gali būti naudojamas pakeisti argumento vertę, prieš kurią yra ref raktinis žodis, perduodamas vadinamajam metodui, o išeinantis raktinis žodis yra naudojamas grąžinti ankstesnio argumento vertę. pagal raktinį žodį.