Ero nyrkkeilyn ja nyrkkeilyn välillä C #: ssä

Kirjoittaja: Laura McKinney
Luomispäivä: 2 Huhtikuu 2021
Päivityspäivä: 5 Saattaa 2024
Anonim
Ero nyrkkeilyn ja nyrkkeilyn välillä C #: ssä - Tekniikka
Ero nyrkkeilyn ja nyrkkeilyn välillä C #: ssä - Tekniikka

Sisältö


Kohdassa C # kaikki arvotyypit johdetaan luokkaobjektista. Joten tyyppiobjektin viitemuuttuja voi viitata mihin tahansa muuhun arvolajiin. C # esittelee kaksi menetelmää nyrkkeilyyn ja nyrkkeilyyn, jotka yhdistävät arvotyypin viitetyyppiin. Perusero nyrkkeilyn ja poiminnan välillä on, että nyrkkeily on arvotyypin muuntaminen objektityypiksi, kun taas toisissa käsissä termi Unboxing viittaa kohdetyypin muuntamiseen arvotyyppiksi. Tutkitaanpa muita nyrkkeilyn ja nyrkkeilyn välisiä eroja.

  1. Vertailutaulukko
  2. Määritelmä
  3. Keskeiset erot
  4. johtopäätös

Vertailutaulukko

Vertailun perusteetNyrkkeilyPakkauksen avaaminen
perustiedotObjektityyppi viittaa arvotyyppiin.arvon hakemisprosessi laatikosta.
varastointiPinoon tallennettu arvo kopioidaan kasaan muistiin tallennettuun kohteeseen.Kasanmuistiin tallennettu objektiarvo kopioidaan pinoon tallennettuun arvolajiin.
muuntaminenImplisiittinen muuntaminen.Selkeä muuntaminen.
esimerkkiint n = 24;
objekti ob = n;
int m = (int) ob;


Määritelmä Nyrkkeily

Nyrkkeily on menetelmä muuntaa arvotyyppi objektityyppiksi. Tässä arvotyyppi tallennetaan pinoon, ja kohdetyyppi tallennetaan kasan muistiin. Tämä arvotyypin muuntaminen objektityypiksi on implisiittinen muuntaminen. Voit määrittää arvon suoraan objektille, ja C # käsittelee loput muunnoksen. Ymmärretään nyrkkeily esimerkillä.

int i = 24; objekti ob = i; // Laita kokonaisluvutyyppi n objektityyppiin ob. tai objekti ob1 = 21; // Tässä myös objektityyppi ob1 viittaa kokonaislukuun

Yllä olevassa koodissa kokonaisluku tyyppi i, joka sisältää arvon 24, tallennetaan pinoon ja kopioidaan objektityyppiin ob. Kohdetyyppi viittaa nyt kokonaislukuarvoon. Nyt ”int i” sisältää myös arvon 24 ja “objektityyppi ob” myös arvon 24, mutta molemmat arvot ovat riippumattomia toisistaan, ts. Jos muutat arvon i arvoa, se ei heijasta muutosta arvo ob.


Nyrkkeily kuluttaa ylimääräistä muistia ja ylimääräistä aikaa. Syynä on, että uuden objektin, joka viittaa arvotyyppiin, on allokoitava muistitila kasassa. Seuraavaksi pinoon tallennetun arvotyypin arvo siirretään objektiobjektityyppiin kasan muistipaikkaan.

Määritelmä Unboxing

Nyrkkeilyn kääntöpuoli on nyrkkeily. Laatikon poisto on objektityypin muuntaminen arvotyyppiksi. Kohdassa Unboxing kasaan tallennetun laatikoidun oliotyypin arvo siirretään pinoon tallennetulle arvotyypille. Toisin kuin nyrkkeily, nyrkkeily on tehtävä nimenomaisesti. Kohdetyyppi on nimenomaisesti valettu arvotyyppiin, ja arvotyypin on oltava sama kuin arvo, johon kohdetyyppi viittaa. Ymmärretään käsitys Unboxing käytöstä esimerkillä.

int i = 24; objekti ob = i; // Laita kokonaisluvutyyppi n objektityyppiin ob. int j = (int) ob; // Poista objektityyppiin ob tallennettu kokonaisluku arvolla kokonaisluvutyypille y.

Kohteeseen ob tallennettu arvo noudetaan heittämällä se tyyppiin, jota objekti viitti ts. Kokonaisluvutyyppiin “j”.

Boxin poistaminen vie myös enemmän muistia ja enemmän aikaa. Koska kun objektityyppi on poistettava, kasaan tallennetun oliotyypin arvo on siirrettävä pinoon tallennettuun uuteen arvotyyppiin. Kohdetyyppi, jonka arvo on noudettu, on nyt saatavissa roskien keräämistä varten.

  1. Nyrkkeilyssä objekti tehdään viittaamaan arvotyypiksi. Toisaalta prosessia, jolla arvoa haetaan takaisin laatikoidusta esineestä, kutsutaan pakkauksen poistamiseksi.
  2. Pinoon tallennettu arvotyyppi kopioidaan kasaan muistiin tallennettuun kohteeseen. Toisaalta, kun poistetaan laatikoita, kasaan muistiin tallennettu esine kopioidaan pino-muistiin tallennettuun arvolajiin.
  3. Nyrkkeily on implisiittinen muuntaminen, kun taas nyrkkeily on nimenomainen muuntaminen.

johtopäätös:

Sekä nyrkkeily että nyrkkeily vievät enemmän aikaa ja muistia, ja ne ovat laskennallisesti kalliita. Niillä ei myöskään ole tyyppiturvallisuutta ja ne lisäävät ajonaikaista yläkulmaa. Aina suositellaan välttämään liikaa nyrkkeilyä ja nyrkkeilyä ohjelmassa.