Sobes.tech
Junior

Co je to rozšiřující metoda v C#?

sobes.tech AI

Odpověď od AI

Rozšiřující metoda (Extension Method) je statická metoda, kterou lze volat, jako by byla metodou rozšiřovaného typu, i když je ve skutečnosti definována mimo tento typ.

Hlavní vlastnosti:

  • Je to statická metoda deklarovaná ve statické třídě.
  • První parametr rozšiřující metody musí být označen klíčovým slovem this a ukazovat na typ, který chcete rozšířit.
  • Rozšiřující metody nemají přístup k soukromým a chráněným členům rozšiřovaného typu.
  • Umožňují přidávat funkčnost ke stávajícím typům bez změny jejich zdrojového kódu nebo použití dědičnosti.

Příklad tvorby a použití:

  1. Definice statické třídy a rozšiřující metody:

    public static class StringExtensions // Statická třída
    {
        public static string ToTitleCase(this string input) // Rozšiřující metoda pro typ string
        {
            if (string.IsNullOrEmpty(input))
            {
                return input;
            }
            // Jednoduchá logika převodu na Title Case
            return System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(input.ToLower());
        }
    }
    
  2. Použití rozšiřující metody:

    string myString = "hello world";
    string titleCaseString = myString.ToTitleCase(); // Volání jako běžná metoda typu string
    // titleCaseString nyní obsahuje "Hello World"