Sobes.tech
Junior — Middle

Czy możesz wyjaśnić, co oznacza metoda rozszerzenia w programowaniu?

sobes.tech AI

Odpowiedź od AI

Metoda rozszerzenia w C# to sposób na dodanie nowej metody do istniejącego typu bez zmiany jego kodu źródłowego i bez tworzenia nowego dziedziczącego. Takie metody są deklarowane jako statyczne w statycznej klasie, a pierwszy parametr metody oznacza się słowem kluczowym this, wskazując typ, do którego dodawana jest metoda.

Jest to wygodne, gdy trzeba rozszerzyć funkcjonalność klas z bibliotek, do których nie mamy dostępu, aby je zmodyfikować.

Przykład metody rozszerzenia:

public static class StringExtensions
{
    public static bool IsNullOrEmpty(this string str)
    {
        return string.IsNullOrEmpty(str);
    }
}

// Użycie:
string s = null;
bool result = s.IsNullOrEmpty();

Tutaj IsNullOrEmpty wygląda jak metoda instancji łańcucha, choć w rzeczywistości jest to statyczna metoda rozszerzenia.