Co to są metody rozszerzające? W jaki sposób możemy je używać?


Metody rozszerzające pozwalają nam na rozszerzenie istniejących klas w nowe funkcjonalności bez dokonywania w nich zmian. Są przydatne zwłaszcza gdy nie mamy dostępu do kodu źródłowego danej klasy ale chcemy rozszerzyć jej możliwości.

Metoda rozszerzająca jest to metoda statyczna znajdująca się w klasie statycznej i jako pierwszy parametr występuje w niej słowo kluczowe this wraz z informacją o typie który chcemy rozszerzać. Pierwszego parametru nie podajemy jawnie podczas wywoływania, jest on automatycznie przekazywany. Metoda rozszerzająca będzie dostępna jedynie gdy będzie w tej samej przestrzeni nazw co typ rozszerzany bądź gdy przestrzeń nazw w której znajduje się metoda rozszerzająca dołączymy poprzez dyrektywę using.


Dodamy rozszerzenie do typu int. Będzie to funkcja zwracająca informację czy dana liczba jest parzysta.

public static class IntUtility
{
    public static bool IsEven(this int value) // słowo this informuje kompilator że jest to metoda rozszerzająca
    {
        return ((value % 2) == 0); //sprawdzamy czy dzieli się przez 2 bez reszty
    }
}

Fragment kodu gdzie wykorzystujemy metodę rozszerzającą:

int valueToCheck = 8;
var result = valueToCheck.IsEven(); 
Mateusz132 08-08-2018 01:49
Nie to, że się czepiam ale brakuje typu zwracanego bool w definicji metody i średnika w returnie.

marcin90 08-08-2018 02:20
Brawa za spostrzegawczość! Poprawione :)


© 2024 - SkillsTest.pl | | Regulamin | Polityka Prywatnosci