Sobes.tech
Junior

Маънии усулҳои васеъкунӣ чист?

sobes.tech AI

Ҷавоб аз AI

Методҳои васеъкунӣ (extension methods) имкон медиҳанд, ки методҳои нав ба намудҳои мавҷуда илова карда шаванд, бе тағир додани коди манбаъ ё сохтани намудҳои нав.

Маънои он чунин аст:

  • Онҳо ҳамчун методҳои статикӣ дар класи статикӣ эълон мешаванд.
  • Параметри аввалини методи васеъкунӣ калимаи this-ро дар пеши навъи худ дорад. Ин параметр навъи, ки васеъ карда мешавад, нишон медиҳад.
  • Онҳо ҳамчун методҳои намунавии навъи васеъшуда даъват мешаванд.

Масалан:

// Класи статикӣ барои методҳои васеъкунӣ
public static class StringExtensions
{
    // Метод барои васеъкунӣ барои навъи 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) + "...";
    }
}

// Истифодаи методаи васеъкунӣ
string myString = "This is a long string.";
string truncatedString = myString.Truncate(10); // Дар шакли методаи намуна даъват мешавад

// Баробар ба даъвати мустақим ба методи статикӣ
string truncatedStringDirect = StringExtensions.Truncate(myString, 10);

Фоидаҳо:

  • Беҳтар кардани хонданпазирии коди, бо истифода аз синтаксиси "нуқта" дар объектҳо.
  • Имкон медиҳад, ки функсионалият ба синфҳои "sealed" ё намудҳои китобхонаҳои беруна илова карда шавад, бе тағир додани коди манбаъ.
  • Ҳолатҳоро барои навиштани пурсишҳои LINQ осон мекунад, зеро бисёре аз методҳои LINQ ҳамчун методҳои васеъкунӣ амалӣ шудаанд.