Programování

Jak používat pojmenované a volitelné parametry v C #

Microsoft představil podporu pojmenovaných a volitelných parametrů v C # 4.0. Zatímco pojmenovaný parametr se používá k určení argumentu na základě názvu argumentu a nikoli pozice, lze použít volitelný parametr k vynechání jednoho nebo více parametrů v podpisu metody. Parametry metody mohou být povinné nebo volitelné v závislosti na tom, zda při předání metody musíte předat hodnotu těmto parametrům.

Je třeba poznamenat, že pojmenované a volitelné parametry lze použít nejen s metodami, ale také s indexery a delegáty. Tento článek pojednává o těchto dvou výkonných funkcích programovacího jazyka C # a o tom, jak s nimi můžeme pracovat.

Chcete-li pracovat s příklady kódu uvedenými v tomto článku, měli byste mít ve svém systému nainstalovanou Visual Studio 2019. Pokud ještě nemáte kopii, můžete si stáhnout Visual Studio 2019 zde.

Vytvořte projekt konzolové aplikace v sadě Visual Studio

Nejprve si vytvořme projekt konzolové aplikace .NET Core v sadě Visual Studio. Za předpokladu, že je ve vašem systému nainstalovaná sada Visual Studio 2019, postupujte podle níže uvedených kroků a vytvořte nový projekt konzolové aplikace .NET Core v sadě Visual Studio.

  1. Spusťte Visual Studio IDE.
  2. Klikněte na „Vytvořit nový projekt“.
  3. V okně „Vytvořit nový projekt“ vyberte ze zobrazeného seznamu šablon „Console App (.NET Core)“.
  4. Klikněte na Další.
  5. V dalším okně „Konfigurace nového projektu“ zadejte název a umístění nového projektu.
  6. Klikněte na Vytvořit.

Tím se vytvoří nový projekt aplikace konzoly .NET Core v sadě Visual Studio 2019. Tento projekt použijeme pro práci s pojmenovanými a volitelnými parametry v následujících částech tohoto článku.

Použít pojmenované parametry v C #

Když voláte metodu, konstruktor, indexer nebo delegáta, musíte předat argumenty pro požadované parametry, ale můžete vynechat argumenty pro parametry, které byly definovány jako volitelné parametry.

Možná budete muset zavolat metodu, která má mnoho parametrů. A i když voláte takovou metodu pouze s požadovanými parametry, je někdy extrémně obtížné pochopit, který argument se mapuje na který parametr. Zde přicházejí na pomoc pojmenované argumenty.

Pojmenované argumenty v programovacím jazyce C # se používají k přidružení názvu argumentu metody k její hodnotě - tj. Hodnotě předané jako argument při volání metody. Je třeba poznamenat, že při použití pojmenovaného argumentu se argumenty vyhodnocují ve stejném pořadí, v jakém byly předány.

Podívejme se na příklad. Napište následující metodu s názvem Přidat uvnitř třídy Program vašeho nového projektu konzolové aplikace.

public static int Přidat (int x, int y, int z, int a, int b, int c)

{

návrat x + y + z + a + b + c;

}

Předpokládejme, že voláte metodu Add, jak je ukázáno v úryvku kódu níže.

static void Main (řetězec [] args)

{

Přidat (5, 10);

}

Výše uvedený kód nebude fungovat, protože v podpisu metody Add je šest požadovaných parametrů (žádné nejsou volitelné), ale předali jste pouze dva argumenty. Zobrazí se následující chyba.

Proto jste nuceni předávat hodnoty do každého z parametrů, abyste uspokojili volání, jak je ukázáno v níže uvedeném fragmentu kódu.

static void Main (řetězec [] args)

{

Přidat (5, 10, 8, 2, 3, 6);

}

Věci se komplikují, když máte v parametrech metody kombinaci datových typů. Pro ilustraci upravme naši metodu Add, jak je znázorněno v následujícím fragmentu kódu.

public static int Add (int x, int y, int z, double a, double b, double c)

{

návrat x + y + z + Convert.ToInt32 (a) + Convert.ToInt32 (b) + Convert.ToInt32 (c);

}

Pamatování datových typů parametrů a jejich polohy je těžkopádné. Řešením je využít výhody pojmenovaných argumentů a předat hodnoty metodě, jak je ukázáno v níže uvedeném fragmentu kódu.

static void Main (řetězec [] args)

{

Přidat (x: 5, y: 10, z: 8, a: 2,0, b: 3,0, c: 6,0);

}

Můžete dokonce změnit pořadí pojmenovaných argumentů, jak je ukázáno ve fragmentu kódu uvedeném níže.

static void Main (řetězec [] args)

{

Přidat (z: 8, x: 5, y: 10, c: 6, a: 2,0, b: 3,0);

}

Pokud pojmenujete argumenty, můžete je předat v jakémkoli pořadí a kompilátor neoznámí žádnou chybu - tj. Je to v C # naprosto platné.

Použijte volitelné parametry v C #

Volitelné parametry v programovacím jazyce C # umožňují určit argumenty v podpisu metody, které volající metody může vynechat. Jinými slovy, zatímco musíte zadat hodnoty pro požadované parametry, můžete se rozhodnout nezadat hodnoty pro volitelné parametry. V některých případech může mít volitelný parametr přidruženou také výchozí hodnotu.

Výchozí hodnota volitelného parametru může mít kterýkoli ze tří druhů hodnot: konstantní výraz, výraz ve formě typu hodnoty nebo výraz ve formě výchozí (v), kde v je hodnota typ.

Add metoda zobrazená v následujícím fragmentu kódu ukazuje, jak můžete zadat volitelné argumenty pro metodu v C #.

public static int Přidat (int x, int y = 0, int z = 0)

{

návrat x + y + z;

}

A tady je způsob, jak můžete zavolat metodu Add.

Přidat (10);

Protože dva z parametrů v Add metodě jsou volitelné, můžete při volání této metodě předat jednu celočíselnou hodnotu. Dbejte na správné pořadí definování parametrů v metodě. Požadované parametry by měly být na prvním místě, následované volitelnými parametry, pokud existují.

Pojmenované a volitelné parametry byly zavedeny do programovacího jazyka C # za účelem zlepšení interoperability s COM API. Použití pojmenovaných parametrů může zlepšit čitelnost zdrojového kódu. A můžete využít volitelných parametrů jako náhradu za použití přetížených metod, když je definice metody identická.

Jak udělat více v C #:

  • Jak používat plynulá rozhraní a řetězení metod v C #
  • Jak testovat statické metody v C #
  • Jak refaktorovat Boží objekty v C #
  • Jak používat ValueTask v C #
  • Jak používat neměnnost v C.
  • Jak používat const, readonly a static v C #
  • Jak používat datové anotace v C #
  • Jak pracovat s identifikátory GUID v C # 8
  • Kdy použít abstraktní třídu vs. rozhraní v C #
  • Jak pracovat s AutoMapperem v C #
  • Jak používat výrazy lambda v C #
  • Jak pracovat s delegáty Action, Func a Predicate v C #
  • Jak pracovat s delegáty v C #
  • Jak implementovat jednoduchý záznamník v C #
  • Jak pracovat s atributy v C #
  • Jak pracovat s log4net v C #
  • Jak implementovat vzor návrhu úložiště v C #
  • Jak pracovat s odrazem v C #
  • Jak pracovat se souborovým systémem v C #
  • Jak provést línou inicializaci v C #
  • Jak pracovat s MSMQ v C #
  • Jak pracovat s metodami rozšíření v C #
  • Jak na nás lambda výrazy v C #
  • Kdy použít volatilní klíčové slovo v C #
  • Jak používat klíčové slovo výnos v C #
  • Jak implementovat polymorfismus v C #
  • Jak vytvořit svůj vlastní plánovač úloh v C #
  • Jak pracovat s RabbitMQ v C #
  • Jak pracovat s n-ticí v C #
  • Zkoumání virtuálních a abstraktních metod v C #
  • Jak používat Dapper ORM v C #
  • Jak používat návrhový vzor muší váhy v C #