Verschil tussen ref en uit in C #

Schrijver: Laura McKinney
Datum Van Creatie: 2 April 2021
Updatedatum: 5 Kunnen 2024
Anonim
The Difference between the United Kingdom, Great Britain and England Explained
Video: The Difference between the United Kingdom, Great Britain and England Explained

Inhoud


"Ref" en "Out" zijn de parameterwijzigingen die worden gebruikt in C #. Met ref en out kunt u elk waardetype doorgeven door verwijzing naar elke methode. De reden om elk waardetype door te geven aan zijn referentie, introduceert het belangrijkste verschil tussen het trefwoord ref en out. De ref sleutelwoord laat de aangeroepen methode toe om de inhoud van het doorgegeven argument te wijzigen met ref sleutelwoord. De uit trefwoord laat de opgeroepen methode toe om meer dan één waarde te retourneren bij een enkele oproep. Laten we het verschil tussen ref en out bestuderen samen met een vergelijkingstabel.

  1. Vergelijkingstabel
  2. Definitie
  3. Belangrijkste verschillen
  4. Gevolgtrekking

Vergelijkingstabel

Basis voor vergelijkingRefUit
basis-Hiermee kan de waarde van het argument worden gewijzigd dat is doorgegaan met het trefwoord ref.Hiermee kan een methode die waarden retourneren, voorafgegaan door een out-trefwoord.
initialisatieDe parameter ref moet voorafgaand aan de methodeaanroep worden geïnitialiseerd.De parameter out moet binnen de aangeroepen methode worden geïnitialiseerd voordat deze wordt beëindigd.
VerklaringDe parameter die door een methode moet worden gewijzigd, wordt gedeclareerd als ref terwijl de methode wordt gedeclareerd en de methode wordt aangeroepen.De te retourneren parameter moet worden opgegeven als ref tijdens het declareren van de methode en het aanroepen van de methode.


Definitie van Ref-trefwoord

De "ref" is een parameterwijziging die wordt gebruikt wanneer er een methode met call-by-reference moet worden aangeroepen. Als we willen dat de wijzigingen in de argumenten in een aangeroepen methode moeten worden weerspiegeld in de oorspronkelijke waarde van die variabele, dan wordt de parameter ref parameter gebruikt. Het waardetype dat we als ref willen declareren, wordt voorafgegaan door het trefwoord "ref" tijdens de methode-aangifte en het aanroepen van de methode. Meer dan één parameter kan worden opgegeven als een "ref" tijdens het aanroepen en declareren van een methode.

met behulp van systeem; class DemoRef {public void Square (ref int s) {s = s * s; }} class Ref_main {static void Main () {DemoRef ob = new DemoRef (); int a = 10; Console.WriteLine ("a before methodeaanroep:" + a); ob.Square (ref a); // Gebruikt ref Trefwoord Console.WriteLine ("a after call:" + a); }} // voer een vóór methodeaanroep uit: 10 a na methodeaanroep: 100

In bovenstaande code wordt de variabele ‘a’ als argument doorgegeven aan de methode Square (ref a) samen met de daaraan bevestigde parameter modifier ref. Het betekent dat elke wijziging die de methode Square (ref a) uitvoert op de variabele ‘a’ binnenin, de oorspronkelijke waarde van de ‘a’ weerspiegelt, ook buiten de methode.


Er zijn enkele belangrijke punten die u moet onthouden bij het omgaan met parameterwijziging "ref".

  • Het argument dat u doorgeeft aan de verwijzing naar een methode moet worden geïnitialiseerd voordat de methode wordt aangeroepen.
  • De methode mag de beginwaarde niet toewijzen aan het argument ref.
  • U kunt ook ref samen met de referentievariabele gebruiken.

Definitie van Out-trefwoord

Elke keer dat u een methode aanroept, retourneert deze slechts één waarde. Als u wilt dat een methode meer dan één waarde retourneert bij een aanroep, moet het trefwoord "out" worden gebruikt samen met de parameters die u wilt retourneren wanneer de methode wordt beëindigd. Soms is het zo dat als we niets aan de methode willen doorgeven maar willen dat de methode iets teruggeeft, we parameters gebruiken met een out-trefwoord.Laten we het begrijpen met een voorbeeld.

met behulp van systeem; class DemoOut {public int Decompose (dubbel x, uit dubbele breuk) {int hele_num; hele_num = (int) x; fractie = x - geheel getal; retourneer hele_getal; }} class Out_maint {static void Main () {DemoOut ob = new DemoOut (); int i; dubbele frac; i = ob.Decompose (100.125, uit frac); // gebruikte sleutelwoord Console.WriteLine ("Deel van gehele nummer is" + i); Console.WriteLine ("fraction deel is" + frac); }} // output Geheel getal gedeelte is 100 Fractioneel gedeelte is 0,125

In bovenstaande code worden twee waarden geretourneerd door de methode Decompose (). De ene retourneert het door het trefwoord "return", d.w.z. heel_num, en de andere retourneert een parameter die wordt voorafgegaan door het trefwoord out, terwijl de methode dat wil zeggen "frac".

De belangrijke punten om te onthouden over het out-trefwoord.

  • In tegenstelling tot ref-sleutelwoord, mag de parameter die het sleutelwoord gebruikt niet worden geïnitialiseerd voordat de methode wordt aangeroepen.
  • De aangeroepen methode zal zelf een waarde toewijzen aan de parameter met een uit-sleutelwoord, omdat het wordt beschouwd als niet-toegewezen binnen de opgeroepen methode, d.w.z. er wordt aangenomen dat het geen beginwaarde heeft.
  • De aangeroepen methode moet een waarde toewijzen aan de parameter out voordat de methode wordt beëindigd.
  • Het out-trefwoord is ook van toepassing op de referentievariabele.
  1. Wanneer een variabele die wordt voorafgegaan door het trefwoord ref wordt doorgegeven aan een willekeurige methode, worden de wijzigingen die in de methode worden aangebracht, weergegeven in de oorspronkelijke waarde. Wanneer een variabele die aan een methode wordt doorgegeven, wordt voorafgegaan door ons trefwoord, retourneert de methode deze zonder het trefwoord return te gebruiken.
  2. De parameter ref moet worden geïnitialiseerd voordat deze wordt doorgegeven aan een methode. Aan de andere kant moet de parameter out worden geïnitialiseerd in de methode waarnaar deze wordt doorgegeven.
  3. Bij het aanroepen, declareren of definiëren van een methode, wordt de parameter ref expliciet aangegeven als ref. Aan de andere kant wordt de parameter out tijdens het aanroepen, declareren of definiëren van een methode expliciet als out verklaard.

Gevolgtrekking:

Wanneer de variabele moet worden doorgegeven door de verwijzing naar een methode, kan het trefwoord ref en out worden gebruikt. Terwijl de reden voor het gebruik van beide trefwoorden anders is, waarbij het ref-trefwoord kan worden gebruikt om de waarde van het argument voorafgegaan door ref-trefwoord te wijzigen, doorgegeven aan de aangeroepen methode en het out-trefwoord wordt gebruikt om terug te keren de waarde van het voorafgegaan argument door het sleutelwoord out.