Junior
Mit takar a bővítési módszerek lényege?
sobes.tech MI
Válasz az MI-től
A bővítménymetódusok (extension methods) lehetővé teszik, hogy új módszereket adjunk meglévő típusokhoz anélkül, hogy megváltoztatnánk azok forráskódját vagy új származtatott típust hoznánk létre.
A lényege a következő:
- Statikus osztályban statikus módszerként vannak deklarálva.
- A bővítménymetódus első paramétere a
thiskulcsszót tartalmazza a típusa előtt. Ez a paraméter jelzi a bővített típust. - Olyan módon hívják őket, mintha az adott típus példányosított módszerei lennének.
Példa:
// Statikus osztály a bővítménymetódusokhoz
public static class StringExtensions
{
// Bővítménymetódus a string típushoz
public static string Truncate(this string input, int maxLength)
{
if (string.IsNullOrEmpty(input))
{
return input;
}
return input.Length <= maxLength ? input : input.Substring(0, maxLength) + "...";
}
}
// A bővítménymetódus használata
string myString = "This is a long string.";
string truncatedString = myString.Truncate(10); // Példányként hívva
// Egyenértékű a közvetlen statikus metódushívással
string truncatedStringDirect = StringExtensions.Truncate(myString, 10);
Előnyei:
- Javítják a kód olvashatóságát, lehetővé téve a "pont" szintaxis használatát az objektumokon.
- Lehetővé teszik funkciók hozzáadását "sealed" (lezárt) osztályokhoz vagy külső könyvtárak típusaihoz anélkül, hogy módosítanánk a forráskódot.
- Megkönnyítik a LINQ lekérdezések írását, mivel sok LINQ-metódus implementálva van bővítménymetódusként.