Junior
V čom spočíva podstata metód rozšírenia?
sobes.tech AI
Odpoveď od AI
Rozširujúce metódy (extension methods) umožňujú pridávať nové metódy k existujúcim typom bez zmeny ich zdrojového kódu alebo vytvárania nového odvodeného typu.
Podstata je nasledovná:
- Sú deklarované ako statické metódy v statickej triede.
- Prvý parameter rozširujúcej metódy má kľúčové slovo
thispred svojím typom. Tento parameter označuje typ, ktorý sa rozširuje. - Sú volané ako inštančné metódy rozširovaného typu.
Príklad:
// Statická trieda pre rozširujúce metódy
public static class StringExtensions
{
// Rozširujúca metóda pre typ string
public static string Truncate(this string input, int maxLength)
{
if (string.IsNullOrEmpty(input))
{
return input;
}
return input.Length <= maxLength ? input : input.Substring(0, maxLength) + "...";
}
}
// Použitie rozširujúcej metódy
string myString = "This is a long string.";
string truncatedString = myString.Truncate(10); // Volá sa ako inštančná metóda
// Ekvivalent priameho volania statickej metódy
string truncatedStringDirect = StringExtensions.Truncate(myString, 10);
Výhody:
- Zlepšujú čitateľnosť kódu, umožňujúc použitie syntaxe "bodky" na objektoch.
- Umožňujú pridanie funkčnosti k "sealed" (zatvoreným) triedam alebo typom z knižníc tretích strán bez zmeny ich zdrojového kódu.
- Uľahčujú písanie LINQ dopytov, pretože mnoho LINQ metód je implementovaných ako rozširujúce metódy.