Sobes.tech
Junior

Czym jest metoda rozszerzenia w C#?

sobes.tech AI

Odpowiedź od AI

Metoda rozszerzenia (Extension Method) to statyczna metoda, którą można wywołać tak, jakby była metodą typu rozszerzanego, choć w rzeczywistości jest zdefiniowana poza tym typem.

Główne cechy:

  • Jest to statyczna metoda zadeklarowana w statycznej klasie.
  • Pierwszy parametr metody rozszerzenia musi być oznaczony słowem kluczowym this i wskazywać na typ, który chcesz rozszerzyć.
  • Metody rozszerzenia nie mają dostępu do prywatnych i chronionych członków rozszerzanego typu.
  • Pozwalają dodawać funkcjonalność do istniejących typów bez zmiany ich kodu źródłowego lub użycia dziedziczenia.

Przykład tworzenia i użycia:

  1. Definicja statycznej klasy i metody rozszerzenia:

    public static class StringExtensions // Statyczna klasa
    {
        public static string ToTitleCase(this string input) // Metoda rozszerzenia dla typu string
        {
            if (string.IsNullOrEmpty(input))
            {
                return input;
            }
            // Prosta logika konwersji na Title Case
            return System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(input.ToLower());
        }
    }
    
  2. Użycie metody rozszerzenia:

    string myString = "hello world";
    string titleCaseString = myString.ToTitleCase(); // Wywołanie jakby to była zwykła metoda string
    // titleCaseString teraz zawiera "Hello World"