Kako koristiti imenovane i neobavezne parametre u C #

Microsoft je u C # 4.0 uveo podršku za imenovane i neobavezne parametre. Iako se imenovani parametar koristi za specificiranje argumenta na temelju imena argumenta, a ne pozicije, neobavezni parametar može se koristiti za izostavljanje jednog ili više parametara u potpisu metode. Parametri metode mogu biti potrebni ili neobavezni, ovisno o tome trebate li tim vrijednostima prosljeđivati ​​vrijednost kada se metoda poziva.

Treba imati na umu da se imenovani i neobavezni parametri mogu koristiti ne samo s metodama već i s indeksatorima i delegatima. Ovaj članak razmatra ove dvije snažne značajke programskog jezika C # i kako možemo raditi s njima.

Da biste radili s primjerima koda iz ovog članka, u sustavu biste trebali instalirati Visual Studio 2019. Ako još nemate kopiju, ovdje možete preuzeti Visual Studio 2019.

Stvorite projekt aplikacije konzole u Visual Studiju

Prvo, kreirajmo projekt aplikacije .NET Core konzole u Visual Studiju. Pod pretpostavkom da je Visual Studio 2019 instaliran u vašem sustavu, slijedite korake opisane u nastavku da biste u Visual Studiju stvorili novi projektni program konzole .NET Core.

  1. Pokrenite Visual Studio IDE.
  2. Kliknite "Stvori novi projekt".
  3. U prozoru "Stvori novi projekt" s popisa predložaka odaberite "Aplikacija konzole (.NET Core)".
  4. Kliknite Dalje.
  5. U sljedećem prozoru "Konfiguriranje novog projekta" navedite naziv i mjesto za novi projekt.
  6. Kliknite Stvori.

To će stvoriti novi projekt aplikacije .NET Core konzole u Visual Studio 2019. Ovaj ćemo projekt koristiti za rad s imenovanim i neobaveznim parametrima u sljedećim odjeljcima ovog članka.

Upotrijebite imenovane parametre u C #

Kada pozivate metodu, konstruktor, indeksator ili delegat, morate proslijediti argumente za tražene parametre, ali možete izostaviti argumente za parametre koji su definirani kao neobavezni parametri.

Možda ćete često trebati nazvati metodu koja ima mnogo parametara. Pa čak i kada pozivate takvu metodu sa samo traženim parametrima, ponekad je izuzetno teško razumjeti koji se argument preslikava na koji parametar. Evo gdje navedeni argumenti dolaze u pomoć.

Imenovani argumenti u programskom jeziku C # koriste se za povezivanje imena argumenta metode s njezinom vrijednošću - tj. Vrijednošću koja se prosljeđuje kao argument prilikom poziva metode. Treba napomenuti da se pri korištenju imenovanog argumenta argumenti procjenjuju istim redoslijedom kojim su proslijeđeni.

Pogledajmo primjer. Sljedeću metodu nazvanu Add napišite unutar klase Program vašeg novog projekta aplikacije konzole.

javni statički int Dodaj (int x, int y, int z, int a, int b, int c)

{

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

}

Pretpostavimo da zovete metodu Add kako je prikazano u isječku koda u nastavku.

statička praznina Main (string [] args)

{

    Dodaj (5, 10);

}

Gornji kôd neće raditi jer u potpisu metode Dodaj postoji šest potrebnih parametara (nijedan nije opcijski parametar), ali ste proslijedili samo dva argumenta. Prikazat će vam se sljedeća pogreška.

Stoga ste ograničeni na prosljeđivanje vrijednosti svakom od parametara kako biste zadovoljili poziv kao što je prikazano u isječku koda koji je dat u nastavku.

statička praznina Main (string [] args)

{

   Dodaj (5, 10, 8, 2, 3, 6);

}

Stvari se zakompliciraju kada u parametrima metode imate kombinaciju vrsta podataka. Da bismo to ilustrirali, izmijenimo našu metodu Add kako je prikazano u sljedećem isječku koda.

javni statički int Dodaj (int x, int y, int z, double a, double b, double c)

{

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

}

Sjećati se vrsta podataka parametara, kao i njihovog položaja, glomazno je. Rješenje za to je iskorištavanje imenovanih argumenata i prosljeđivanje vrijednosti metodi kao što je prikazano u isječku koda datom u nastavku.

statička praznina Main (string [] args)

{

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

}

Možete čak i promijeniti redoslijed imenovanih argumenata, kao što je prikazano u isječku koda koji je dan u nastavku.

statička praznina Main (string [] args)

{

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

}

Sve dok imenujete argumente, možete ih prosljeđivati ​​u bilo kojem redoslijedu i kompajler neće označavati nikakve pogreške - tj. To je potpuno ispravno u C #.

Koristite neobavezne parametre u C #

Neobavezni parametri u programskom jeziku C # omogućuju vam da navedete argumente u potpisu metode koje pozivatelj metode može slobodno izostaviti. Drugim riječima, iako morate navesti vrijednosti za potrebne parametre, možda ćete odlučiti da ne navedete vrijednosti za neobavezne parametre. U nekim slučajevima, neobavezni parametar može imati i zadanu vrijednost.

Zadana vrijednost neobaveznog parametra može imati bilo koju od tri vrste vrijednosti: konstantni izraz, izraz koji ima oblik tipa vrijednosti ili izraz koji je u obliku zadane vrijednosti (v) gdje je v vrijednost tip.

Metoda Dodaj prikazana u sljedećem isječku koda ilustrira kako možete navesti neobavezne argumente za metodu u C #.

javni statički int Dodaj (int x, int y = 0, int z = 0)

{

    povratak x + y + z;

}

I evo kako možete nazvati metodu Dodaj.

Dodaj (10);

Budući da su dva parametra u metodi Add neobavezna, možete joj proslijediti jednu cjelobrojnu vrijednost kad je pozivate. Vodite računa da slijedite ispravan redoslijed definiranja parametara u metodi. Potrebni parametri trebali bi biti na prvom mjestu, a zatim neobavezni, ako postoje.

Imenovani i neobavezni parametri uvedeni su u programski jezik C # kako bi se poboljšala interoperabilnost s COM API-ima. Korištenje imenovanih parametara može poboljšati čitljivost izvornog koda. A neobavezne parametre možete iskoristiti kao zamjenu za upotrebu preopterećenih metoda kada je definicija metode identična.

Kako učiniti više u C #:

  • Kako koristiti tečna sučelja i ulančavanje metoda u C #
  • Kako jedinica testirati statičke metode u C #
  • Kako refaktorirati Božje objekte u C #
  • Kako koristiti ValueTask u C #
  • Kako se koristi nepromjenjivost u C
  • Kako koristiti const, readonly i static u C #
  • Kako koristiti bilješke podataka u C #
  • Kako raditi s GUID-ovima u C # 8
  • Kada koristiti apstraktnu klasu naspram sučelja u C #
  • Kako raditi s AutoMapperom u C #
  • Kako koristiti lambda izraze u C #
  • Kako raditi s delegatima Action, Func i Predicate u C #
  • Kako raditi s delegatima u C #
  • Kako implementirati jednostavni zapisnik u C #
  • Kako raditi s atributima u C #
  • Kako raditi s log4netom na C #
  • Kako implementirati obrazac dizajna spremišta u C #
  • Kako raditi s refleksijom u C #
  • Kako raditi s nadzornikom datoteka u C #
  • Kako izvesti lijenu inicijalizaciju u C #
  • Kako raditi s MSMQ-om u C #
  • Kako raditi s metodama produženja u C #
  • Kako do nas lambda izrazi u C #
  • Kada upotrijebiti hlapljivu ključnu riječ u C #
  • Kako koristiti ključnu riječ yield u C #
  • Kako implementirati polimorfizam u C #
  • Kako izraditi vlastiti planer zadataka u C #
  • Kako raditi s RabbitMQ u C #
  • Kako raditi s korpicom u C #
  • Istraživanje virtualnih i apstraktnih metoda u C #
  • Kako koristiti Dapper ORM u C #
  • Kako koristiti uzorak dizajna muhe u C #