Sobes.tech
Junior

Čo je to rozširujúca metóda v C#?

sobes.tech AI

Odpoveď od AI

Metóda rozšírenia (Extension Method) je statická metóda, ktorú je možné volať ako metódu rozširovaného typu, hoci je v skutočnosti definovaná mimo tohto typu.

Hlavné vlastnosti:

  • Je to statická metóda deklarovaná v statickej triede.
  • Prvý parameter rozširovacej metódy musí byť označený kľúčovým slovom this a ukazovať na typ, ktorý chcete rozšíriť.
  • Rozširovacie metódy nemajú prístup k súkromným a chráneným členom rozširovaného typu.
  • Umožňujú pridávať funkcionalitu k existujúcim typom bez zmeny ich zdrojového kódu alebo použitia dedičnosti.

Príklad vytvorenia a použitia:

  1. Definícia statickej triedy a rozširovacej metódy:

    public static class StringExtensions // Statická trieda
    {
        public static string ToTitleCase(this string input) // Rozširovacia metóda pre typ string
        {
            if (string.IsNullOrEmpty(input))
            {
                return input;
            }
            // Jednoduchá logika konverzie na Title Case
            return System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(input.ToLower());
        }
    }
    
  2. Použitie rozširovacej metódy:

    string myString = "hello world";
    string titleCaseString = myString.ToTitleCase(); // Volanie ako bežná metóda string
    // titleCaseString teraz obsahuje "Hello World"