Metody (procedury, funkce...) a jejich argumenty jsou v C# základní jazykovou konstrukcí. Za dvacet let existence jazyka však doznaly změn a značného vývoje, již tradičně směrem ke zjednodušení a zpříjemnění práce programátora. V dnešním videu si ukážeme, k čemu slouží klíčová slova in
a out
, operátor nameof
či caller info attributes.
Co zajímavého metody a jejich argumenty umí?
- Overloads umožňují zapsat více "variant" metody s různými parametry. Která metoda se zavolá se rozhodne automaticky na základě typů předaných hodnot.
- Param arrays jsou syntaktický cukr, kdy lze s použitím klíčového slova
params
hodnotu typu jednorozměrného pole zadat též jako libovolné množství samostatných argumentů - Pomocí klíčových slov
out
a méně známéhoin
lze definovat argumenty jako pouze vstupní nebo výstupní. U výstupních argumentů je lze pomocívar
deklarovat až v okamžiku použití, případně lze jejich hodnotu ignorovat použitím znaku_
(podtržítko) jako discard. - Argumenty mohou být volitelné (tím že se jim určí výchozí hodnota) a při volání je lze pojmenovat, což přispívá ke srozumitelnosti kódu.
- Pomocí atributů
[CallerMemberName]
,[CallerFilePath]
a[CallerLineNumber]
lze zjistit, z jakého místa kódu byla vaše metoda volána; to se hodí zejména v případě logovacích metod, které tyto informace zaznamenávají pro diagnostické účely. - Operátor
nameof
se striktně vzato argumentů metod netýká, ale přesto jsem ho sem zařadil. Umožňuje totiž vrátit název nějakého konstruktu jako string, což se hojně používá při validaci hodnot argumentů.