Programmering

Sådan bruges navngivne og valgfri parametre i C #

Microsoft introducerede understøttelse af navngivne og valgfri parametre i C # 4.0. Mens en navngivet parameter bruges til at specificere et argument baseret på navnet på argumentet og ikke positionen, kan en valgfri parameter bruges til at udelade en eller flere parametre i metodesignaturen. Parametrene for en metode kan enten være påkrævet eller valgfri, afhængigt af om du har brug for at overføre en værdi til disse parametre, når metoden kaldes.

Det skal bemærkes, at navngivne og valgfrie parametre ikke kun kan bruges med metoder, men også med indekserer og delegerede. Denne artikel diskuterer disse to effektive funktioner i C # programmeringssprog, og hvordan vi kan arbejde med dem.

For at arbejde med kodeeksemplerne i denne artikel skal du have Visual Studio 2019 installeret i dit system. Hvis du ikke allerede har en kopi, kan du downloade Visual Studio 2019 her.

Opret et konsolapplikationsprojekt i Visual Studio

Lad os først oprette et .NET Core-konsolapplikationsprojekt i Visual Studio. Forudsat at Visual Studio 2019 er installeret i dit system, skal du følge nedenstående trin for at oprette et nyt .NET Core-konsolapplikationsprojekt i Visual Studio.

  1. Start Visual Studio IDE.
  2. Klik på "Opret nyt projekt."
  3. I vinduet "Opret nyt projekt" skal du vælge "Konsolapp (.NET Core)" fra listen over skabeloner, der vises.
  4. Klik på Næste.
  5. I vinduet "Konfigurer dit nye projekt", der vises nedenfor, skal du angive navnet og placeringen for det nye projekt.
  6. Klik på Opret.

Dette opretter et nyt .NET Core-konsolapplikationsprojekt i Visual Studio 2019. Vi bruger dette projekt til at arbejde med navngivne og valgfri parametre i de efterfølgende afsnit i denne artikel.

Brug navngivne parametre i C #

Når du kalder en metode, konstruktør, indekser eller delegeret, skal du videregive argumenter for de krævede parametre, men du er fri til at udelade argumenter for de parametre, der er defineret som valgfri parametre.

Du skal muligvis ofte kalde en metode, der har mange parametre. Og selv når du kalder en sådan metode med kun de krævede parametre, er det undertiden ekstremt vanskeligt at forstå, hvilket argument der tilordnes til hvilken parameter. Her kommer navngivne argumenter til undsætning.

Navngivne argumenter i programmeringssprog C # bruges til at knytte argumentets navn på en metode til dens værdi - dvs. værdien, der sendes som et argument, når man kalder metoden. Det skal bemærkes, at når du bruger et navngivet argument, evalueres argumenterne i samme rækkefølge, som de blev sendt.

Lad os se på et eksempel. Skriv følgende metode med navnet Tilføj inden i programklassen i dit nye konsolapplikationsprojekt.

offentlig statisk int Tilføj (int x, int y, int z, int a, int b, int c)

{

returnere x + y + z + a + b + c;

}

Lad os antage, at du ringer til metoden Tilføj som vist i kodestykket nedenfor.

statisk ugyldigt Main (streng [] args)

{

Tilføj (5, 10);

}

Ovenstående kode fungerer ikke, fordi der er seks påkrævede parametre (ingen er valgfri parametre) i signaturen til Add-metoden, men du har kun bestået to argumenter. Du får følgende fejl.

Derfor er du begrænset til at overføre værdier til hver af parametrene for at imødekomme opkaldet som vist i kodestykket nedenfor.

statisk ugyldigt Main (streng [] args)

{

Tilføj (5, 10, 8, 2, 3, 6);

}

Ting bliver komplicerede, når du har en blanding af datatyper i parametrene for en metode. For at illustrere dette skal vi ændre vores Tilføj-metode som vist i følgende kodestykke.

offentlig statisk int Tilføj (int x, int y, int z, dobbelt a, dobbelt b, dobbelt c)

{

returnere x + y + z + Convert.ToInt32 (a) + Convert.ToInt32 (b) + Convert.ToInt32 (c);

}

At huske parameternes datatyper såvel som deres placering er besværligt. Løsningen på dette er at drage fordel af navngivne argumenter og overføre værdier til metoden som vist i kodestykket nedenfor.

statisk ugyldigt Main (streng [] args)

{

Tilføj (x: 5, y: 10, z: 8, a: 2,0, b: 3,0, c: 6,0);

}

Du kan endda ændre rækkefølgen af ​​de navngivne argumenter, som vist i kodestykket nedenfor.

statisk ugyldigt Main (streng [] args)

{

Tilføj (z: 8, x: 5, y: 10, c: 6, a: 2,0, b: 3,0);

}

Så længe du navngiver argumenterne, kan du videregive dem i en hvilken som helst rækkefølge, og compileren vil ikke markere nogen fejl - dvs. dette er perfekt gyldigt i C #.

Brug valgfri parametre i C #

Valgfri parametre i programmeringssprog C # giver dig mulighed for at specificere argumenter i en metodesignatur, som den, der ringer til metoden, frit kan udelade. Med andre ord, mens du skal angive værdier for krævede parametre, kan du muligvis vælge ikke at specificere værdier for valgfrie parametre. I nogle tilfælde kan en valgfri parameter muligvis også have en standardværdi tilknyttet.

Standardværdien for en valgfri parameter kan have en hvilken som helst af tre slags værdier: et konstant udtryk, et udtryk, der har form af en værditype, eller et udtryk, der har form af standard (v), hvor v er en værdi type.

Metoden Tilføj vist i det følgende kodestykke illustrerer, hvordan du kan specificere valgfri argumenter til en metode i C #.

offentlig statisk int Tilføj (int x, int y = 0, int z = 0)

{

returnere x + y + z;

}

Og her er hvordan du kan kalde Add-metoden.

Tilføj (10);

Da to af parametrene i Add-metoden er valgfri, kan du overføre en enkelt heltalværdi til metoden, når du kalder den. Sørg for at følge den rette rækkefølge for at definere parametre i en metode. De nødvendige parametre skal komme først, efterfulgt af eventuelle parametre, hvis der findes nogen.

Navngivne og valgfri parametre blev introduceret til C # programmeringssprog for at forbedre interoperabilitet med COM API'er. Brug af navngivne parametre kan forbedre læsbarheden af ​​kildekoden. Og du kan drage fordel af valgfri parametre som erstatning for brug af overbelastede metoder, når metodedefinitionen er identisk.

Sådan gør du mere i C #:

  • Sådan bruges flydende grænseflader og metodekædning i C #
  • Sådan enhedstest statiske metoder i C #
  • Sådan refaktorerer du Guds objekter i C #
  • Sådan bruges ValueTask i C #
  • Sådan bruges uforanderlighed i C
  • Sådan bruges const, readonly og static i C #
  • Sådan bruges datanoteringer i C #
  • Sådan arbejder du med GUID'er i C # 8
  • Hvornår skal man bruge en abstrakt klasse vs. interface i C #
  • Sådan arbejder du med AutoMapper i C #
  • Sådan bruges lambda-udtryk i C #
  • Sådan arbejder du med Action-, Func- og Predicate-delegerede i C #
  • Sådan arbejder du med delegerede i C #
  • Sådan implementeres en simpel logger i C #
  • Sådan arbejder du med attributter i C #
  • Sådan arbejder du med log4net i C #
  • Sådan implementeres depotdesignmønsteret i C #
  • Sådan arbejder du med refleksion i C #
  • Sådan arbejder du med filsystemwatcher i C #
  • Sådan udføres doven initialisering i C #
  • Sådan arbejder du med MSMQ i C #
  • Sådan arbejder du med udvidelsesmetoder i C #
  • Hvordan vi lambda-udtryk i C #
  • Hvornår skal du bruge det flygtige nøgleord i C #
  • Sådan bruges afkastnøgleordet i C #
  • Sådan implementeres polymorfisme i C #
  • Sådan bygger du din egen opgaveplanlægning i C #
  • Sådan arbejder du med RabbitMQ i C #
  • Sådan arbejder du med en tuple i C #
  • Udforskning af virtuelle og abstrakte metoder i C #
  • Sådan bruges Dapper ORM i C #
  • Sådan bruges designmønsteret med flyvægt i C #