Key Difference – out vs ref in C
C on Microsoftin kehittämä moderni ohjelmointikieli. Sitä käytetään erilaisten työpöytä-, web- ja mobiilisovellusten kehittämiseen. Funktiot tai menetelmät ovat ohjelmoinnin käsite. Se joukko lausekkeita, joita käytetään tietyn tehtävän suorittamiseen, tunnetaan funktiona tai menetelmänä. C-ohjelmissa suoritus alkaa main (). Se on esimerkki menetelmästä. Kun menetelmää kutsutaan, data välitetään menetelmälle tai vastaanotetaan menetelmältä. Menetelmää, joka kutsuu uutta menetelmää, kutsutaan menetelmän kutsumiseksi. Uusi menetelmä tunnetaan nimellä kutsuttu menetelmä. Välittävien arvojen hallintaan ja tuloksen palauttamiseen C käyttää parametreja. Ne ovat arvoparametreja, lähtöparametreja ja referenssiparametreja. Arvoparametreja käytetään parametrien siirtämiseen menetelmään arvoittain. Viiteparametreja käytetään parametrien siirtämiseen menetelmälle viittauksella. Tulosparametreja käytetään tulosten siirtämiseen takaisin menetelmästä. C:ssa out-avainsanaa käytetään lähtöparametreihin ja ref-avainsanaa viitataan parametreihin. Keskeinen ero out ja ref välillä C:ssa on se, että out on avainsana, jota käytetään viittaamaan lähtöparametriin, jota käytetään siirtämään tulokset kutsutusta menetelmästä kutsumenetelmään, kun taas ref on avainsana viittaamaan viiteparametriin, jota käytetään välittämiseen. tiedot kutsuvasta menetelmästä kutsutulle menetelmälle ja vastaanottaa data kutsutusta menetelmästä kutsuvaan menetelmään.
Mitä C:ssa on tarjolla?
Funktion tai menetelmän syntaksi on seuraava. Metodissa on useita elementtejä, kuten menetelmän nimi, parametriluettelo, palautustyyppi ja pääsyn määrittäjä.
(parametriluettelo)
{ //suoritettavat lausunnot
}
Jokaisella menetelmällä on ainutlaatuinen menetelmä funktiokutsujen tekemiseen. Suoritettavat lauseet ovat a altosulkeiden sisällä. Palautustyyppi selittää, palauttaako funktio arvon vai ei. Kun palautustyyppiä ei ole, sitä kutsutaan mitätöidyksi. Käyttöoikeusmääritystä käytetään määrittämään menetelmän saavutettavuus sovelluksessa. Parametreja käytetään tietojen vastaanottamiseen tai siirtämiseen menetelmälle. Voi olla myös menetelmiä ilman parametreja. Parametrit voivat olla arvoparametreja, lähtöparametreja tai referenssiparametreja.
Tulosparametreja käytetään tulosten siirtämiseen takaisin kutsumenetelmään. Tätä varten parametri tulee ilmoittaa avainsanalla out. Tulosparametri ei luo uutta tallennuspaikkaa. Yleensä menetelmä palauttaa yhden arvon. Mutta C:ssa on mahdollista palauttaa kaksi arvoa funktiosta käyttämällä lähtöparametreja. Katso alla olevaa ohjelmaa.
nimiavaruussovellus1{
julkinen luokka Laskenta{
julkinen tyhjä näyttö(ulos int a, out int b){
int arvo=5;
a=arvo;
b=arvo;
a=a a;
b=bb;
}
julkinen staattinen void main(String args){
int arvo1=10, arvo2=20;
Laskeminen cal=new Laskenta();
cal.display(out value1, out value2);
Console. ReadLine();
}
}
}
Näyttötoiminto kutsutaan päämenetelmästä. Arvolla1 ja arvolla kaksi on 10 ja 20, mutta niitä ei oteta mukaan menetelmään. A:n arvo on 25 ja b:n arvo on myös 25 funktiossa. Siksi nämä arvot palautetaan. Kun tulostetaan arvo1 ja arvo2, se ei anna arvoja 10 ja 20. Sen sijaan se tulostaa 25 ja 25. Out-avainsanalla voidaan palauttaa menetelmästä useita arvoja.
Mikä on viite C:ssa?
Kun parametreja välitetään arvoittain, jokaiselle parametrille luodaan uusi tallennuspaikka. Varsinaiset pääohjelmasta lähetetyt parametrit eivät muutu. Sen sijaan nämä arvot kopioidaan erilliseen paikkaan. Näitä uusia muuttujakopioita kutsutaan muodollisiksi parametreiksi. Katso alla oleva koodi.
nimiavaruussovellus1{
julkinen luokka Laskenta{
julkinen void swap(int x, int y){
int temp;
temp=x;
x=y;
y=lämpötila;
}
julkinen staattinen void main(String args){
Laskeminen cal=new Laskenta();
int p=2;
int q=3;
cal.swap(p, q);
Console. WriteLine(p);
Console. WriteLine(q);
Console. ReadLine();
}
}
}
Yllä olevan ohjelman mukaan Laskenta-luokassa on menetelmän vaihto (). Pääohjelmassa luodaan Laskenta-tyyppinen objekti. Arvoja on kaksi, kuten p ja q. Muuttujan p arvo on 2 ja muuttujan q arvo 3. Nämä kaksi arvoa välitetään swap-menetelmään. Swap-menetelmässä arvo 2 kopioidaan muuttujaan x ja arvo 3 muuttujaan y. Temp-muuttujan avulla arvot vaihdetaan. Pääohjelmassa, kun tulostetaan p ja q, arvoja ei vaihdeta. P-arvo on edelleen 2 ja q-arvo on 3. Jopa swap-menetelmässä arvot vaihdetaan, mutta se ei heijastu pääohjelmassa.
Toisin kuin yllä olevien arvojen välittäminen, parametrit voidaan välittää viittauksella. Viitemuuttuja on viittaus muistipaikkaan. Uutta muistipaikkaa ei ole luotu. Menetelmän muutokset näkyvät pääohjelmassa. C:ssa viiteparametreihin viitataan ref-avainsanalla. Katso alla olevaa ohjelmaa.
nimiavaruussovellus1{
julkinen luokka Laskenta{
julkinen void swap(ref int x, ref int y){
int temp;
lämpö=x;
x=y;
y=lämpötila;
}
julkinen staattinen void main(String args){
Laskeminen cal=new Laskenta();
int p=2;
int q=3;
cal.swap(viite p, viite q);
Console. WriteLine(p);
Console. WriteLine(q);
Console. ReadLine();
}
}
}
Yllä olevan ohjelman mukaan luokassa Laskenta on swap-menetelmä. Pääohjelmassa luodaan Laskenta-tyyppinen objekti. Siinä on kaksi muuttujaa, kuten p ja q. P-muuttujan arvo on 2 ja q-muuttujan arvo 3. Arvojen välittämisen sijaan viittaus p:n ja q:n muistipaikkoihin välitetään menetelmälle. Näihin viitemuuttujiin viitataan käyttämällä ref. Swap-menetelmässä arvojen siirtämisen sijaan uuteen paikkaan muutokset tehdään todellisiin parametreihin. Kun tulostetaan pääohjelman p- ja q-arvot, se antaa vaihdetut arvot. Nyt p-arvo on 3 ja q-arvo on 2.
Mikä on samank altaisuus out- ja refin välillä C:ssa?
Molemmat ovat avainsanoja, joita käytetään viittaamaan menetelmän parametreihin
Mitä eroa on out- ja refin välillä C:ssa?
out vs ref in C |
|
Out on C:n avainsana, jota käytetään viittaamaan tulosparametriin. Sitä käytetään siirtämään tulokset kutsutusta menetelmästä menetelmän kutsumiseen. | Ref on C:n avainsana, jota käytetään viittaamaan viiteparametriin. Sitä käytetään tietojen siirtämiseen kutsuvasta menetelmästä kutsutulle menetelmälle ja tietojen palauttamiseen kutsutusta menetelmästä kutsuvaan menetelmään. |
Toiminnot | |
Käytettäessä avainsanaa out tiedot voidaan siirtää kutsumenetelmästä kutsuttuun menetelmään. Mutta nämä tiedot hylätään. Sitä käytetään tulosten välittämiseen kutsutavalle menetelmälle. | Käytettäessä avainsanaa ref, tiedot siirretään kutsumenetelmästä kutsuttuun menetelmään ja käsitellyt tiedot siirretään takaisin kutsutavaan. |
Tietojen välitys | |
Käytettäessä avainsanaa out tiedot välitetään yhdellä tavalla, joka on kutsuttu menetelmä kutsuvaan menetelmään. | Käytettäessä avainsanaa ref, tiedot välitetään kahdella tavalla, jotka ovat kutsutavasta kutsuttavaan menetelmään ja kutsutusta menetelmästä kutsuvaan metodiin. |
Yhteenveto – out vs ref in C
Kun menetelmää vedetään, voi olla tarpeen siirtää arvot metodiin ja saada takaisin menetelmän tulokset. C:lla on erilaiset parametrit sen saavuttamiseksi. Arvoparametreja käytetään parametrien siirtämiseen menetelmään arvoittain. Viiteparametreja käytetään parametrien siirtämiseen menetelmälle viittauksella. Tulosparametreja käytetään tulosten siirtämiseen takaisin menetelmästä. C:ssa out-avainsanaa käytetään lähtöparametreihin ja ref-avainsanaa viitataan parametreihin. Ero out ja ref välillä C:ssa on se, että out on avainsana, jota käytetään viittaamaan tulosparametriin, jota käytetään tulosten siirtämiseen kutsutusta menetelmästä kutsumenetelmään, kun taas ref on avainsana viittaamaan viiteparametriin, jota käytetään tietojen välittämiseen kutsumalla menetelmä kutsutulle menetelmälle ja vastaanottamaan tiedot kutsutusta menetelmästä kutsuvaan menetelmään.
Lataa PDF-tiedosto out vs ref in C
Voit ladata tämän artikkelin PDF-version ja käyttää sitä offline-tarkoituksiin lainaushuomautuksen mukaisesti. Lataa PDF-versio tästä: Ero Out and Ref in C