Sobes.tech
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į this prieš 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.