Junior
Ką sudaro plėtros metodų esmė?
sobes.tech AI
Atsakymas iš AI
Plėtinių metodai (extension methods) leidžia pridėti naujus metodus prie esamų tipų be jų šaltinio kodo keitimo ar naujo paveldimo tipo kūrimo.
Pagrindinė esmė yra tokia:
- Jie deklaruojami kaip statiniai metodai statinėje klasėje.
- Pirmasis plėtinių metodo parametras turi raktinį žodį
thisprieš savo tipą. Šis parametras nurodo plėtojamo tipo tipą. - Jie kviečiami kaip instancijos metodai plėtojamo tipo.
Pavyzdys:
// Statinė klasė plėtinių metodų
public static class StringExtensions
{
// Plėtinių metodas string tipui
public static string Truncate(this string input, int maxLength)
{
if (string.IsNullOrEmpty(input))
{
return input;
}
return input.Length <= maxLength ? input : input.Substring(0, maxLength) + "...";
}
}
// Naudojimas
string myString = "This is a long string.";
string truncatedString = myString.Truncate(10); // Kviečiama kaip instancijos metodas
// Lygu tiesioginiam statinio metodo kvietimui
string truncatedStringDirect = StringExtensions.Truncate(myString, 10);
Privalumai:
- Pagerina kodo skaitomumą, leidžia naudoti "taškas" sintaksę objektuose.
- Leidžia pridėti funkcionalumą "sealed" (užrakintoms) klasėms arba iš išorinių bibliotekų tipams be jų šaltinio kodo keitimo.
- Supaprastina LINQ užklausų rašymą, nes daugelis LINQ metodų yra įgyvendinti kaip plėtinių metodai.