Zoeken…


Opmerkingen

Genoemde argumenten

Ref: MSDN Met genoemde argumenten kunt u een argument voor een bepaalde parameter opgeven door het argument te koppelen aan de naam van de parameter in plaats van aan de positie van de parameter in de parameterlijst.

Zoals gezegd door MSDN, A benoemd argument,

  • Hiermee kunt u het argument doorgeven aan de functie door de naam van de parameter te associëren.
  • Het is niet nodig om de parameters te onthouden waarvan we ons niet altijd bewust zijn.
  • Het is niet nodig om de volgorde van de parameters te zoeken in de parameterlijst van de opgeroepen functie.
  • We kunnen de parameter voor elk argument opgeven aan de hand van de naam.

Optionele argumenten

Ref: MSDN De definitie van een methode, constructor, indexer of gedelegeerde kan specificeren dat de parameters vereist zijn of dat ze optioneel zijn. Elke aanroep moet argumenten bevatten voor alle vereiste parameters, maar kan argumenten voor optionele parameters weglaten.

Zoals gezegd door MSDN, een optioneel argument,

  • We kunnen het argument in de aanroep weglaten als dat argument een optioneel argument is
  • Elk optioneel argument heeft zijn eigen standaardwaarde
  • Het heeft de standaardwaarde nodig als we de waarde niet opgeven
  • Een standaardwaarde van een optioneel argument moet een zijn
    • Constante uitdrukking.
    • Moet een waardetype zijn, zoals enum of struct.
    • Moet een uitdrukking zijn van de standaardinstelling (valueType)
  • Het moet worden ingesteld aan het einde van de parameterlijst

Genoemde argumenten

Overweeg dat volgen onze functieaanroep is.

FindArea(120, 56);

Hierin is ons eerste argument lengte (dwz 120) en het tweede argument is breedte (dwz 56). En we berekenen het gebied met die functie. En hierna volgt de functiedefinitie.

private static double FindArea(int length, int width)
       {
           try
           {
               return (length* width);
           }
           catch (Exception)
           {
               throw new NotImplementedException();
           }
       }

Dus in de eerste functieaanroep hebben we de argumenten net doorgegeven door hun positie. Rechtsaf?

double area;
Console.WriteLine("Area with positioned argument is: ");
area = FindArea(120, 56);
Console.WriteLine(area);
Console.Read();

Als u dit uitvoert, krijgt u een uitvoer als volgt.

voer hier de afbeeldingsbeschrijving in

Nu komen hier de kenmerken van een genoemde argumenten. Zie de voorgaande functieaanroep.

Console.WriteLine("Area with Named argument is: ");
area = FindArea(length: 120, width: 56);
Console.WriteLine(area);
Console.Read();

Hier geven we de genoemde argumenten in de methodeaanroep.

area = FindArea(length: 120, width: 56);

Als u dit programma nu uitvoert, krijgt u hetzelfde resultaat. We kunnen de namen vice versa geven in de methode-aanroep als we de genoemde argumenten gebruiken.

Console.WriteLine("Area with Named argument vice versa is: ");
area = FindArea(width: 120, length: 56);
Console.WriteLine(area);
Console.Read();

Een belangrijk gebruik van een benoemd argument is dat wanneer u dit in uw programma gebruikt, het de leesbaarheid van uw code verbetert. Het zegt eenvoudig wat uw argument is, of wat het is ?.

Je kunt ook de positionele argumenten geven. Dat betekent een combinatie van zowel positioneel argument als benoemd argument.

Console.WriteLine("Area with Named argument Positional Argument : ");
            area = FindArea(120, width: 56);
            Console.WriteLine(area);
            Console.Read();

In het bovenstaande voorbeeld hebben we 120 doorgegeven als de lengte en 56 als een benoemd argument voor de parameterbreedte.

Er zijn ook enkele beperkingen. We zullen de beperking van genoemde argumenten nu bespreken.

Beperking van het gebruik van een benoemd argument

Benoemde argumentspecificatie moet verschijnen nadat alle vaste argumenten zijn opgegeven.

Als u een genoemd argument gebruikt vóór een vast argument, krijgt u als volgt een compilatietijdfout.

voer hier de afbeeldingsbeschrijving in

Benoemde argumentspecificatie moet verschijnen nadat alle vaste argumenten zijn opgegeven

Optionele argumenten

Overweeg dat is onze functiedefinitie met optionele argumenten.

private static double FindAreaWithOptional(int length, int width=56)
       {
           try
           {
               return (length * width);
           }
           catch (Exception)
           {
               throw new NotImplementedException();
           }
       }

Hier hebben we de waarde voor width als optioneel ingesteld en waarde als 56 gegeven. Als u opmerkt, toont de IntelliSense zelf het optionele argument zoals weergegeven in de onderstaande afbeelding.

voer hier de afbeeldingsbeschrijving in

Console.WriteLine("Area with Optional Argument : ");
area = FindAreaWithOptional(120);
Console.WriteLine(area);
Console.Read();

Merk op dat we tijdens het compileren geen fouten hebben ontvangen en het geeft u als volgt een uitvoer.

voer hier de afbeeldingsbeschrijving in

Optioneel kenmerk gebruiken.

Een andere manier om het optionele argument te implementeren is door het trefwoord [Optional] . Als u de waarde voor het optionele argument niet doorgeeft, wordt de standaardwaarde van dat gegevenstype toegewezen aan dat argument. Het Optional trefwoord is aanwezig in de naamruimte "Runtime.InteropServices".

using System.Runtime.InteropServices;  
private static double FindAreaWithOptional(int length, [Optional]int width)
   {
       try
       {
           return (length * width);
       }
       catch (Exception)
       {
           throw new NotImplementedException();
       }
   } 

area = FindAreaWithOptional(120);  //area=0

En wanneer we de functie aanroepen, krijgen we 0 omdat het tweede argument niet wordt doorgegeven en de standaardwaarde van int 0 is en dus het product 0 is.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow