Programmering

Hvordan bruke navngitte og valgfrie parametere i C #

Microsoft introduserte støtte for navngitte og valgfrie parametere i C # 4.0. Mens en navngitt parameter brukes til å spesifisere et argument basert på navnet på argumentet og ikke posisjonen, kan en valgfri parameter brukes til å utelate en eller flere parametere i metodesignaturen. Parametrene til en metode kan være enten nødvendige eller valgfrie, avhengig av om du trenger å gi en verdi til disse parameterne når metoden kalles.

Det skal bemerkes at navngitte og valgfrie parametere kan brukes ikke bare med metoder, men også med indekserer og delegater. Denne artikkelen diskuterer disse to kraftige funksjonene i programmeringsspråket C # og hvordan vi kan jobbe med dem.

For å jobbe med kodeeksemplene som er gitt i denne artikkelen, bør du ha Visual Studio 2019 installert på systemet ditt. Hvis du ikke allerede har en kopi, kan du laste ned Visual Studio 2019 her.

Opprett et konsollapplikasjonsprosjekt i Visual Studio

La oss først lage et .NET Core-konsollapplikasjonsprosjekt i Visual Studio. Forutsatt at Visual Studio 2019 er installert i systemet ditt, følger du trinnene som er beskrevet nedenfor for å opprette et nytt .NET Core-konsollapplikasjonsprosjekt i Visual Studio.

  1. Start Visual Studio IDE.
  2. Klikk på "Opprett nytt prosjekt."
  3. I vinduet "Opprett nytt prosjekt" velger du "Konsollapp (.NET Core)" fra listen over maler som vises.
  4. Klikk på Neste.
  5. I vinduet “Konfigurer ditt nye prosjekt” som vises, angir du navnet og stedet for det nye prosjektet.
  6. Klikk på Opprett.

Dette vil opprette et nytt .NET Core-konsollapplikasjonsprosjekt i Visual Studio 2019. Vi bruker dette prosjektet til å jobbe med navngitte og valgfrie parametere i de påfølgende delene av denne artikkelen.

Bruk navngitte parametere i C #

Når du kaller en metode, konstruktør, indekserer eller delegerer, må du sende argumenter for de nødvendige parametrene, men du er fri til å utelate argumenter for parametrene som er definert som valgfrie parametere.

Du må ofte ringe en metode som har mange parametere. Og selv når du kaller en slik metode med bare de nødvendige parametrene, er det noen ganger ekstremt vanskelig å forstå hvilket argument som tilordnes hvilken parameter. Her kommer navngitte argumenter til unnsetning.

Navngitte argumenter i programmeringsspråket C # brukes til å knytte argumentnavnet til en metode til dens verdi - dvs. verdien som sendes som et argument når du kaller metoden. Det skal bemerkes at når du bruker et navngitt argument, blir argumentene evaluert i samme rekkefølge som de ble sendt.

La oss se på et eksempel. Skriv følgende metode som heter Legg til i programklassen til det nye konsollapplikasjonsprosjektet.

offentlig statisk int Legg til (int x, int y, int z, int a, int b, int c)

{

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

}

La oss anta at du ringer til Add-metoden som vist i kodebiten nedenfor.

statisk tomrom Main (streng [] args)

{

Legg til (5, 10);

}

Ovennevnte kode fungerer ikke fordi det er seks nødvendige parametere (ingen er valgfrie parametere) i signaturen til Add-metoden, men du har bare bestått to argumenter. Du får følgende feil.

Derfor er du begrenset til å overføre verdier til hver av parametrene for å oppfylle samtalen som vist i kodebiten gitt nedenfor.

statisk tomrom Main (streng [] args)

{

Legg til (5, 10, 8, 2, 3, 6);

}

Ting blir kompliserte når du har en blanding av datatyper i parametrene til en metode. For å illustrere dette, la oss endre vår Legg til-metoden som vist i følgende kodebit.

offentlig statisk int Legg til (int x, int y, int z, doble a, doble b, doble c)

{

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

}

Å huske datatypene til parametrene så vel som deres posisjon er tungvint. Løsningen på dette er å dra nytte av navngitte argumenter og overføre verdier til metoden som vist i kodebiten gitt nedenfor.

statisk tomrom Main (streng [] args)

{

Legg til (x: 5, y: 10, z: 8, a: 2.0, b: 3.0, c: 6.0);

}

Du kan til og med endre rekkefølgen på de nevnte argumentene, som vist i kodebiten gitt nedenfor.

statisk tomrom Main (streng [] args)

{

Legg til (z: 8, x: 5, y: 10, c: 6, a: 2.0, b: 3.0);

}

Så lenge du navngir argumentene, kan du sende dem i hvilken som helst rekkefølge, og kompilatoren vil ikke merke noen feil - dvs. dette er helt gyldig i C #.

Bruk valgfrie parametere i C #

Valgfrie parametere i programmeringsspråket C # lar deg spesifisere argumenter i en metodesignatur som innringeren av metoden er fri til å utelate. Med andre ord, mens du må spesifisere verdier for nødvendige parametere, kan du velge å ikke spesifisere verdier for valgfrie parametere. I noen tilfeller kan en valgfri parameter også ha en standardverdi.

Standardverdien til en valgfri parameter kan ha en hvilken som helst av tre typer verdier: et konstant uttrykk, et uttrykk som er av formen til en verditype, eller et uttrykk som er som standard (v) der v er en verdi type.

Add-metoden vist i følgende kodebit illustrerer hvordan du kan spesifisere valgfrie argumenter for en metode i C #.

offentlig statisk int Legg til (int x, int y = 0, int z = 0)

{

returnere x + y + z;

}

Og her er hvordan du kan kalle Add-metoden.

Legg til (10);

Fordi to av parametrene i Add-metoden er valgfrie, kan du overføre en enkelt heltallverdi til metoden når du ringer den. Sørg for å følge riktig rekkefølge for å definere parametere i en metode. De nødvendige parametrene bør komme først, etterfulgt av valgfrie parametere hvis det finnes noen.

Navngitte og valgfrie parametere ble introdusert til programmeringsspråket C # for å forbedre interoperabilitet med COM API-er. Bruk av navngitte parametere kan forbedre lesbarheten til kildekoden. Og du kan dra nytte av valgfrie parametere som erstatning for bruk av overbelastede metoder når metodedefinisjonen er identisk.

Hvordan gjøre mer i C #:

  • Hvordan bruke flytende grensesnitt og metodekjetting i C #
  • Hvordan enhetstest statiske metoder i C #
  • Hvordan refaktorere Guds objekter i C #
  • Hvordan bruke ValueTask i C #
  • Hvordan bruke uforanderlighet i C
  • Slik bruker du const, readonly og static i C #
  • Slik bruker du datanoteringer i C #
  • Hvordan jobbe med GUIDer i C # 8
  • Når skal jeg bruke en abstrakt klasse vs. grensesnitt i C #
  • Hvordan jobbe med AutoMapper i C #
  • Hvordan bruke lambdauttrykk i C #
  • Hvordan jobbe med Action-, Func- og Predicate-delegater i C #
  • Hvordan jobbe med delegater i C #
  • Slik implementerer du en enkel logger i C #
  • Hvordan jobbe med attributter i C #
  • Hvordan jobbe med log4net i C #
  • Slik implementerer du mønsteret for depotdesign i C #
  • Hvordan jobbe med refleksjon i C #
  • Hvordan jobbe med filsystemwatcher i C #
  • Hvordan utføre lat initialisering i C #
  • Hvordan jobbe med MSMQ i C #
  • Hvordan jobbe med utvidelsesmetoder i C #
  • Hvordan vi lambdauttrykk i C #
  • Når skal du bruke det flyktige nøkkelordet i C #
  • Slik bruker du avkastningsnøkkelordet i C #
  • Hvordan implementere polymorfisme i C #
  • Hvordan lage din egen oppgaveplanlegger i C #
  • Hvordan jobbe med RabbitMQ i C #
  • Hvordan jobbe med en tuple i C #
  • Utforske virtuelle og abstrakte metoder i C #
  • Hvordan bruke Dapper ORM i C #
  • Hvordan bruke flyvevekt mønster i C #
$config[zx-auto] not found$config[zx-overlay] not found