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
thisi 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:
-
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()); } } -
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"