Programiranje

Kako uporabljati imenovane in neobvezne parametre v jeziku C #

Microsoft je v C # 4.0 predstavil podporo za imenovane in neobvezne parametre. Medtem ko se imenovani parameter uporablja za podajanje argumenta, ki temelji na imenu argumenta in ne na položaju, lahko izbirni parameter izpustimo enega ali več parametrov v podpisu metode. Parametri metode so lahko obvezni ali neobvezni, odvisno od tega, ali morate tem parametrom ob klicu metode posredovati vrednost.

Upoštevati je treba, da lahko imenovane in neobvezne parametre uporabljamo ne samo z metodami, temveč tudi z indeksatorji in delegati. Ta članek razpravlja o teh dveh zmogljivih lastnostih programskega jezika C # in o tem, kako lahko delamo z njimi.

Če želite delati s primeri kod v tem članku, morate imeti v sistemu nameščen Visual Studio 2019. Če kopije še nimate, lahko Visual Studio 2019 prenesete tukaj.

Ustvarite projekt aplikacije za konzolo v Visual Studio

Najprej ustvarimo aplikacijski projekt konzole .NET Core v Visual Studio. Ob predpostavki, da je Visual Studio 2019 nameščen v vašem sistemu, sledite spodnjim korakom, da ustvarite nov aplikacijski projekt konzole .NET Core v Visual Studio.

  1. Zaženite Visual Studio IDE.
  2. Kliknite »Ustvari nov projekt«.
  3. V oknu »Ustvari nov projekt« na seznamu predlog izberite »Console App (.NET Core)«.
  4. Kliknite Naprej.
  5. V naslednjem oknu »Konfiguriranje novega projekta« določite ime in mesto novega projekta.
  6. Kliknite Ustvari.

Tako boste ustvarili nov aplikacijski projekt konzole .NET Core v Visual Studio 2019. Ta projekt bomo uporabili za delo z imenovanimi in neobveznimi parametri v naslednjih odsekih tega članka.

Uporabite imenovane parametre v C #

Ko prikličete metodo, konstruktor, indeksator ali delegat, morate posredovati argumente za zahtevane parametre, vendar lahko argumente za parametre, ki so bili definirani kot neobvezni, izpustite.

Morda boste pogosto morali poklicati metodo, ki ima veliko parametrov. In tudi če kličete takšno metodo z le zahtevanimi parametri, je včasih izredno težko razumeti, kateri argument preslika na kateri parameter. Tu so na pomoč imenovani argumenti.

Imenovani argumenti v programskem jeziku C # se uporabljajo za povezovanje imena argumenta metode z njeno vrednostjo - tj. Vrednostjo, ki je bila poslana kot argument med klicanjem metode. Upoštevati je treba, da se pri uporabi imenovanega argumenta argumenti vrednotijo ​​v enakem vrstnem redu, kot so bili posredovani.

Oglejmo si primer. Zapišite naslednjo metodo z imenom Dodaj v razred programa vašega novega projekta aplikacije ukazne mize.

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

{

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

}

Recimo, da kličete metodo Dodaj, kot je prikazano v spodnjem delčku kode.

statična praznina Main (string [] args)

{

Dodaj (5, 10);

}

Zgornja koda ne bo delovala, ker je v podpisu metode Dodaj šest zahtevanih parametrov (noben ni neobvezen), vendar ste poslali le dva argumenta. Prikazala se vam bo naslednja napaka.

Zato ste omejeni na posredovanje vrednosti vsakemu parametru, da boste zadovoljili klic, kot je prikazano v spodnjem delčku kode.

statična praznina Main (string [] args)

{

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

}

Stvari se zapletejo, če imate v parametrih metode kombinacijo podatkovnih vrst. Za ponazoritev spremenimo način Dodaj, kot je prikazano v naslednjem delčku kode.

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

{

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

}

Spomin na vrste podatkov parametrov in njihov položaj je okoren. Rešitev tega je, da izkoristite imenovane argumente in posredujete vrednosti metodi, kot je prikazano v spodnjem delčku kode.

statična praznina Main (string [] args)

{

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

}

Lahko celo spremenite vrstni red imenovanih argumentov, kot je prikazano v spodnjem delčku kode.

statična praznina Main (string [] args)

{

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

}

Dokler poimenujete argumente, jih lahko posredujete v poljubnem vrstnem redu in prevajalnik ne bo označil nobene napake - to pomeni, da to popolnoma velja v jeziku C #.

Uporabite neobvezne parametre v C #

Izbirni parametri v programskem jeziku C # vam omogočajo, da v podpisu metode navedete argumente, ki jih klicatelj metode lahko izpusti. Z drugimi besedami, čeprav morate določiti vrednosti za zahtevane parametre, lahko izberete, da ne določite vrednosti za neobvezne parametre. V nekaterih primerih je lahko z neobveznim parametrom povezana tudi privzeta vrednost.

Privzeta vrednost neobveznega parametra ima lahko katero koli od treh vrst vrednosti: konstanten izraz, izraz v obliki vrste vrednosti ali izraz v obliki privzete vrednosti (v), kjer je v vrednost tip.

Metoda Dodaj, prikazana v naslednjem delčku kode, ponazarja, kako lahko metodi v C # določite neobvezne argumente.

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

{

vrnitev x + y + z;

}

In tukaj je, kako lahko pokličete metodo Dodaj.

Dodaj (10);

Ker sta dva parametra v metodi Add neobvezna, lahko metodi med klicanjem posredujete eno celoštevilčno vrednost. Pazite, da upoštevate pravilen vrstni red definiranja parametrov v metodi. Zahtevani parametri bi morali biti na prvem mestu, nato pa neobvezni parametri, če obstajajo.

Poimenovani in neobvezni parametri so bili uvedeni v programski jezik C #, da bi izboljšali interoperabilnost s API-ji COM. Uporaba imenovanih parametrov lahko izboljša berljivost izvorne kode. Izbirne parametre lahko izkoristite kot nadomestek za uporabo preobremenjenih metod, kadar je definicija metode enaka.

Kako narediti več v jeziku C #:

  • Kako uporabljati tekoče vmesnike in verigo metod v jeziku C #
  • Kako enotno preizkusiti statične metode v C #
  • Kako preoblikovati božje predmete v C #
  • Kako uporabljati ValueTask v jeziku C #
  • Kako uporabiti nespremenljivost v C
  • Kako uporabljati const, readonly in static v C #
  • Kako uporabljati pripise podatkov v jeziku C #
  • Kako delati z GUID-i v C # 8
  • Kdaj uporabiti abstraktni razred v primerjavi z vmesnikom v jeziku C #
  • Kako delati z AutoMapper v C #
  • Kako uporabljati lambda izraze v jeziku C #
  • Kako delati z delegati Action, Func in Predicate v C #
  • Kako delati z delegati v C #
  • Kako implementirati preprost zapisovalnik v jeziku C #
  • Kako delati z atributi v jeziku C #
  • Kako delati z log4net v C #
  • Kako implementirati vzorec oblikovanja repozitorija v C #
  • Kako delati z refleksijo v jeziku C #
  • Kako delati z nadzornikom datotek v C #
  • Kako izvesti leno inicializacijo v C #
  • Kako delati z MSMQ v C #
  • Kako delati z razširitvenimi metodami v jeziku C #
  • Kako do lambda izrazov v jeziku C #
  • Kdaj uporabiti hlapljivo ključno besedo v jeziku C #
  • Kako uporabiti ključno besedo yield v jeziku C #
  • Kako uporabiti polimorfizem v jeziku C #
  • Kako zgraditi lasten načrtovalnik opravil v C #
  • Kako delati z RabbitMQ v C #
  • Kako delati s korpico v jeziku C #
  • Raziskovanje virtualnih in abstraktnih metod v jeziku C #
  • Kako uporabljati Dapper ORM v C #
  • Kako uporabiti vzorec letenja v C #