SkillsTest.pl C# pytania i zadania rekrutacyjne Co to są metody rozszerzające? W jaki sposób możemy je używać?

: 2017-09-25 | Nr 17 z 51

Pytanie

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

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 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(); 

Polecamy

Na co możesz wydać swoje 15k?

Zabawki dla dwulatka