Skillnad mellan ut och ref i C #

Huvudskillnad - ut vs ref i C #
 

C # är ett modernt programmeringsspråk som utvecklats av Microsoft. Den används för att utveckla olika applikationer för skrivbord, webb och mobil. Funktioner eller metoder är ett begrepp i programmering. Den grupp av uttalanden som används för att utföra en specifik uppgift kallas en funktion eller en metod. I C # -programmen börjar körningen från huvud (). Det är ett exempel på en metod. När man ringer en metod skickas data till metoden eller mottas från metoden. Metoden som kallar den nya metoden kallas ringer metoden. Den nya metoden är känd som kallad metod. För att hantera de överförda värdena och få tillbaka resultatet, använder C # parametrar. De är värda parametrar, utgångsparametrar och referensparametrar. Värdesparametrarna används för att överföra parametrar till metoden efter värde. Referensparametrarna används för att överföra parametrar till metoden genom referens. Utgångsparametrarna används för att överföra resultatet tillbaka från metoden. I C # används ut nyckelord för utgångsparametrar och ref-nyckelord används för att referera till parametrar. De nyckelskillnad mellan ut och ref i C # är det, ut är ett nyckelord som används för att hänvisa en utgångsparameter som används för att skicka resultat från den uppringda metoden till anropsmetoden medan ref är ett nyckelord för att hänvisa en referensparameter som används för att skicka data från anropsmetod till anropad metod och för att ta emot data från den kallade metoden till ringermetoden.

INNEHÅLL

1. Översikt och nyckelskillnad
2. Vad är ute i C #
3. Vad är ref i C #
4. Likheter Mellan ut och ref i C #
5. Sida vid sida Jämförelse - ut mot ref i C # i tabellform
6. Sammanfattning

Vad är ute i C #?

Syntaxen för funktion eller en metod är som följer. En metod har ett antal element som metodnamn, parameterlista, returtyp och åtkomstspecifikator.

(parameterlista)

// uttalanden att utföra

Varje metod har en unik metod för att ringa funktionssamtalet. De exekverbara uttalandena är inuti lockiga axlar. Returtypen förklarar om funktionen returnerar ett värde eller ej. När det inte finns någon returtyp kallas den tom. Access specifier används för att ange metodens tillgänglighet i applikationen. Parametrarna används för att ta emot eller skicka data till metoden. Det kan också finnas metoder utan parametrar. Parametrar kan värderas parametrar, utgångsparametrar eller referensparametrar.

Utgångsparametrarna används för att skicka resultat tillbaka till anropsmetoden. Därför bör parametern deklareras med sökordet ut. Utgångsparametern skapar inte en ny lagringsplats. I allmänhet returnerar en metod ett värde. Men i C # är det möjligt att returnera två värden från en funktion med utgångsparametrar. Se nedan programmet.

namespace application1

            offentlig klassberäkning

public void display (ut int a, ut int b)

int värde = 5;

a = värde;

b = värde;

a = a * a;

b = b * b;

statisk statisk tomt huvud (String [] args)

int värde1 = 10, värde2 = 20;

Beräkning cal = ny beräkning ();

cal.display (ut värde1, ut värde2);

Console.ReadLine ();

Displayfunktionen heter från huvudmetoden. Värdet1 och värdet två har 10 och 20, men de tas inte in i metoden. Värdet på a är 25 och värdet på b är också 25 i funktionen. Därför returneras dessa värden. Vid utskrift av värde1 och värde2 kommer det inte att ge 10 och 20. Istället kommer det att skrivas ut 25 och 25. Med hjälp av ut-sökordet kan flera värden returneras från metoden.

Vad är ref i C #?

När parametrar passeras efter värde skapas en ny lagringsplats för varje parameter. De faktiska parametrarna som skickades från huvudprogrammet ändras inte. Istället kopieras dessa värden till en separat plats. De nya variabla kopiorna kallas formella parametrar. Se nedan koden.

namespace application1

offentlig klassberäkning

public void swap (int x, int y)

int temp;

temp = x;

x = y;

y = temp;

statisk statisk tomt huvud (String [] args)

Beräkning cal = ny beräkning ();

int p = 2;

int q = 3;

cal.swap (p, q);

Console.WriteLine (p);

Console.WriteLine (q);

Console.ReadLine ();

Enligt ovanstående program har beräkningsklassen en metodbyte (). I huvudprogrammet skapas ett objekt av typen Beräkning. Det finns två värden som p och q. Variabeln p har värde 2 och q variabel har värde 3. Dessa två värden överförs till swapmetoden. I swapmetoden kopieras värdet 2 till variabel x och värdet 3 kopieras till variabel y. Med hjälp av tempvariabeln bytas värdena. Tillbaka i huvudprogrammet, när du skriver ut p och q, byts inte värdena. P-värdet är fortfarande 2 och q-värdet är 3. Även i bytesmetoden byts värden men reflekteras inte i huvudprogrammet.

Till skillnad från passningsvärden som ovan är det möjligt att skicka parametrar genom referens. En referensvariabel är en referens till minnesplatsen. Det finns inget nytt minnesplats skapas. Ändringarna i metoden återspeglas i huvudprogrammet. I C # refereras referensparametrarna med hjälp av ref-nyckelord. Se nedan programmet.

namespace application1

offentlig klassberäkning

allmän tomtbyte (ref int x, ref int y)

int temp;

temp = x;

x = y;

y = temp;

statisk statisk tomt huvud (String [] args)

Beräkning cal = ny beräkning ();

int p = 2;

int q = 3;

cal.swap (ref p, ref q);

Console.WriteLine (p);

Console.WriteLine (q);

Console.ReadLine ();

Enligt ovanstående program har klassberäkningen bytesmetoden. I huvudprogrammet skapas ett objekt av typen Beräkning. Det är två variabler som p och q. P-variabeln har värdet 2 och q variabeln har värdet 3. I stället för att överföra värden skickas referensen till minnesplatserna för p och q till metoden. Dessa referensvariabler hänvisas med ref. I bytesmetoden, istället för att klara värdena till en ny plats, görs ändringarna till de faktiska parametrarna. Vid utskrift av p- och q-värdena i huvudprogrammet kommer det att ge de bytte värdena. Nu är p-värdet 3 och q-värdet är 2.

Vad är likheten mellan ut och ref i C #?

  • Båda är nyckelord som används för att hänvisa parametrarna till en metod.

Vad är skillnaden mellan ut och ref i C #?

ut vs ref i C #

Utdraget är ett nyckelord i C # som används för att hänvisa en utgångsparameter. Det brukar passera resultaten från en kallad metod för att ringa metoden. Ref är ett nyckelord i C # som används för att referera till en referensparameter. Det används för att skicka data från anropsmetod till kallad metod och att returnera data från den uppringda metoden till samtalsmetoden.
Funktionalitet
När du använder sökordet kan data skickas från anropsmetod till den uppringda metoden. Men dessa data kasseras. Den används för att överföra resultatet till anropsmetoden från den kallade metoden. När du använder nyckelordet ref skickas data från anropsmetod till den uppringda metoden och den manipulerade data överförs till anropsmetoden.
Överföring av data
När du använder sökordet, skickas data på ett sätt som är en kallad metod för uppringningsmetoden. När du använder nyckelordet ref skickas data på två sätt, som är från anropsmetod till den kallade metoden och från uppkallad metod till anropsmetoden.

Sammanfattning - ut vs ref i C # 

När man anropar en metod kan det vara nödvändigt att överföra värdena till metoden och få tillbaka resultaten från metoden. C # har olika parametrar för att uppnå det. Värdesparametrarna används för att överföra parametrar till metoden efter värde. Referensparametrarna används för att överföra parametrar till metoden genom referens. Utgångsparametrarna används för att överföra resultatet tillbaka från metoden. I C # används ut nyckelord för utgångsparametrar och ref-nyckelord används för att referera till parametrar. Skillnaden mellan ut och ref i C # är att ut är ett nyckelord som används för att hänvisa en utgångsparameter som används för att skicka resultat från uppkallad metod till anropsmetod medan ref är ett nyckelord för att hänvisa en referensparameter som används för att skicka data från ringer metod för att ringa metod och att ta emot data från den kallade metoden till ringermetoden.

Ladda ner PDF-filen utifrån ref i C #

Du kan ladda ner PDF-versionen av den här artikeln och använda den för offline-ändamål enligt citationsnotat. Vänligen ladda ner PDF-versionen här: Skillnad mellan ut och ref i C #

Referens:

1.tutorialspoint.com. "C # Metoder".  Punkten. Tillgänglig här 
2.dnfvideo. C # Ut parametrar Vs REF-parametrar, .NET Interview Preparation, 28 september 2015. Tillgänglig här  

Image Courtesy:

1.'C sharp'By Mothmolevna - Egent arbete, (Public Domain) via Commons Wikimedia