Skillnaden mellan ref och ut i C #

Författare: Laura McKinney
Skapelsedatum: 2 April 2021
Uppdatera Datum: 5 Maj 2024
Anonim
KEOMA | Franco Nero | Spaghetti Western | Svenska Undertexter | HD
Video: KEOMA | Franco Nero | Spaghetti Western | Svenska Undertexter | HD

Innehåll


"Ref" och "Out" är de parametrar som används i C #. Med hjälp av ref och out kan du skicka valfri värdetyp med hänvisning till vilken metod som helst. Anledningen till att någon värdetyp passeras genom sin referens introducerar huvudskillnaden mellan sökordet för ref och ut. De ref nyckelord tillåter den kallade metoden att ändra innehållet i argumentet som skickas till det med ref-nyckelordet. De ut nyckelord tillåter den kallade metoden att returnera mer än ett värde vid ett enda samtal. Låt oss studera skillnaden mellan ref och ut tillsammans med ett jämförelsediagram.

  1. Jämförelsediagram
  2. Definition
  3. Viktiga skillnader
  4. Slutsats

Jämförelsediagram

Grund för jämförelseRefUt
GrundläggandeDet tillåter ändring i värdet av argument som fortsätter med ref sökord.Det tillåter en metod att returnera de värden som föregås av ett ut nyckelord.
initieringRef-parametern måste initieras före metodsamtalet.Ut-parametern måste initieras i den anropade metoden innan den upphör.
DeklarationParametern som ska ändras av en metod deklareras som ref medan metoddeklaration och metodsamtal.Parametern som ska returneras måste deklareras som ref medan metoddeklaration och metodsamtal.


Definition av Ref nyckelord

"Ref" är en parametermodifierare som används när det finns behov av att ringa en metod med samtalsreferens. När vi vill att de ändringar som gjorts i argumenten i en kallad metod måste återspegla det ursprungliga värdet för den variabeln, används ref-parametermodifieraren. Den värdetyp som vi vill förklara som ref föregås av sökordet "ref" under metoddeklaration och metodsamtal. Mer än en parameter kan deklareras som en "ref" när du ringer och förklarar en metod.

använder System; klass DemoRef {public void Square (ref int s) {s = s * s; }} klass Ref_main {static void Main () {DemoRef ob = new DemoRef (); int a = 10; Console.WriteLine ("ett före metodsamtal:" + a); ob.Square (ref a); // Använd ref sökords konsol.WriteLine ("ett efter samtal:" + a); }} // mata ut ett före metodsamtal: 10a efter metodsamtal: 100

I koden ovan överförs variabeln 'a' som ett argument till metoden Square (ref a) tillsammans med parametermodifieraren ref som är kopplad till den. Det betyder att allt som ändrar metoden Square (ref a) kommer att utföra på variabeln 'a' inuti det kommer att återspegla i originalvärdet för 'a', utanför metoden också.


Det finns några viktiga punkter som måste komma ihåg när man hanterar parametermodifieraren ”ref”.

  • Argumentet som du skickar av ref till en metod måste initieras innan metoden ringer.
  • Metoden får inte tilldela initialvärdet till ref-argumentet.
  • Du kan också använda ref tillsammans med referensvariabeln.

Definition av ut nyckelord

Varje gång du anropar en metod returnerar det bara ett enda värde. Om du vill att en metod ska returnera mer än ett värde vid ett samtal måste nyckelordet "ut" användas tillsammans med parametrarna som du vill återvända när metoden avslutas. Ibland är det så att när vi inte vill överföra något till metoden utan vill att metoden ska returnera något använder vi parametrar med ett ut nyckelord.Låt oss förstå det med ett exempel.

använder System; klass DemoOut {public int Nedbryt (dubbel x, ut dubbel bråk) {int hela_num; hela_num = (int) x; fraktion = x - hela_num; returnera hela_num; }} klass Out_maint {static void Main () {DemoOut ob = new DemoOut (); int i; dubbel frac; i = ob.Decompose (100,125, frac); // använde nyckelordet Console.WriteLine ("Hela nummer är" + i); Console.WriteLine ("fraktionsdel är" + frac); }} // utgång Heltalsdel är 100 Fraktionsdel är 0,125

I ovanstående kod returneras två värden med metoden Decompose (). Den ena returnerar med nyckelordet "return", dvs. hela_num, och det andra returnerar en parameter som föregås av ut-nyckelordet medan metoden kallar "frac".

De viktiga punkterna att komma ihåg om sökordet ut.

  • Till skillnad från ref-nyckelord får inte parametern som använder ut sökord initialiseras före metodsamtal.
  • Den anropade metoden tilldelar själv ett värde till parametern med ett ut-nyckelord eftersom det betraktas som otilldelat i den anropade metoden, dvs det antas att det inte har något initialt värde.
  • Den anropade metoden måste tilldela ett värde till ut-parametern innan metoden upphör.
  • Ut-nyckelordet är också tillämpligt på referensvariabeln.
  1. När en variabel som föregås av ref-nyckelordet skickas till någon metod, återspeglas ändringarna i den inuti metoden i dess ursprungliga värde. När en variabel som skickas till en metod föregås av ett nyckelord returnerar metoden den utan att använda returtangent.
  2. Ref-parametern bör initieras innan den överförs till en metod. Å andra sidan måste ut-parametern initialiseras inuti den metod som den överförs till.
  3. Medan man ringer, förklarar eller definierar en metod, förklaras ref-parametern uttryckligen som ref. Å andra sidan, medan man ringer, deklarerar eller definierar en metod, deklareras out-parametern uttryckligen som ut.

Slutsats:

När variabeln ska skickas med hänvisning till en metod kan nyckelordet ref och ut användas. Medan orsaken till att använda båda nyckelorden är olika där ref-nyckelordet kan användas för att ändra värdet på argumentet som föregås av ref-nyckelordet, skickas till den kallade metoden och ut-nyckelordet används för att returnera värdet på argumentet som föregicks med ut nyckelordet.