Sobes.tech
Junior

Kāda ir paplašināšanas metožu būtība?

sobes.tech AI

Atbilde no AI

Paplašināšanas metodes (extension methods) ļauj pievienot jaunas metodes esošiem tipiem, nemainot to avota kodu vai neveidojot jaunu iedzimušo tipu.

Īsumā:

  • Tās tiek deklarētas kā statiskas metodes statiskā klasē.
  • Pirmā paplašināšanas metodes parametra priekšā ir vārds this. Šis parametrs norāda uz paplašināmo tipa tipu.
  • Tās tiek izsauktas kā instancmetodes paplašināmajam tipam.

Piemērs:

// Statiska klase paplašināšanas metodēm
public static class StringExtensions
{
    // Paplašināšanas metode string tipam
    public static string Truncate(this string input, int maxLength)
    {
        if (string.IsNullOrEmpty(input))
        {
            return input;
        }
        return input.Length <= maxLength ? input : input.Substring(0, maxLength) + "...";
    }
}

// Paplašināšanas metodes izmantošana
string myString = "This is a long string.";
string truncatedString = myString.Truncate(10); // Izsaukts kā instancmetode

// Vienāds ar tiešu statiskās metodes izsaukumu
string truncatedStringDirect = StringExtensions.Truncate(myString, 10);

Priekšrocības:

  • Uzlabo koda lasāmību, ļaujot izmantot "punktu" sintaksi objektiem.
  • Ļauj pievienot funkcionalitāti "sealed" (noslēgtām) klasēm vai ārējo bibliotēku tipiem, nemainot to avota kodu.
  • Atvieglo LINQ vaicājumu rakstīšanu, jo daudzas LINQ metodes ir realizētas kā paplašināšanas metodes.