Sobes.tech
Junior

Какво е метод за разширение в C#?

sobes.tech AI

Отговор от AI

Метод за разширяване (Extension Method) е статичен метод, който може да бъде извикан така, сякаш е метод на разширения тип, въпреки че всъщност е дефиниран извън този тип.

Основни характеристики:

  • Това е статичен метод, обявен в статичен клас.
  • Първият параметър на метода за разширяване трябва да бъде маркиран с ключовата дума this и да указва типа, който искате да разширите.
  • Методите за разширяване нямат достъп до частните и защитените членове на разширявания тип.
  • Те позволяват добавяне на функционалност към съществуващи типове без да се променя техният изходен код или да се използва наследяване.

Пример за създаване и използване:

  1. Дефиниране на статичен клас и метод за разширяване:

    public static class StringExtensions // Статичен клас
    {
        public static string ToTitleCase(this string input) // Метод за разширяване за типа string
        {
            if (string.IsNullOrEmpty(input))
            {
                return input;
            }
            // Простата логика за преобразуване към Title Case
            return System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(input.ToLower());
        }
    }
    
  2. Използване на метода за разширяване:

    string myString = "hello world";
    string titleCaseString = myString.ToTitleCase(); // Вика се като обикновен метод на string
    // titleCaseString сега съдържа "Hello World"