Pytania rekrutacyjne .NET
Z jakimi pytaniami z języka programowania .NET możesz się spotkać na rozmowie rekrutacyjnej? Poniżej przedstawiamy 21 pytań, które warto znać, jeśli ubiegasz się o stanowisko programisty .NET.
1. Co to jest BCL?
Base Class Library (BCL) jest zbiorem podstawowych bibliotek, których możemy używać w .NET. Działanie niektórych niestandardowych bibliotek może być niemożliwe bez wcześniejszego zainstalowania BCL.
3. Czym jest enkapsulacja (hermetyzacja)?
Ukrywanie w obiektach pewnych funkcji, do których użytkownik obiektów nie powinien mieć dostępu np.ukrycie możliwości zmiany wartości w konkretnym obiekcie lub ukrycie danych przy pomocy modyfikatora private.
2. Czym jest klasa abstrakcyjna
To rodzaj klas, dla których nie można tworzyć obiektów. To klasa, która została zadeklarowana za pomocą słowa kluczowego. Można po niej dziedziczyć.
3.Czym jest dziedziczenie i jakie ma zalety?
Dziedziczenie jest mechanizmem dzielenia funkcjonalności pomiędzy poszczególnymi klasami (klasa może dziedziczyć po innej klasie atrybuty i zachowania). Klasy dziedziczące to inaczej klasy pochodne. Klasy, po których dziedziczą inne klasy to klasy bazowe. Z jednej klasy bazowej można uzyskać dowolną liczbę klas pochodnych. Główną zaletą dziedziczenia jest możliwość ponownego wykorzystania napisanego wcześniej kodu.
Dziedziczenie umożliwia dostosowanie klas będących niżej w hierarchii do swoich potrzeb, a także wprowadza modularność, czyli umożliwia wprowadzanie nowych funkcjonalności.
5. Czym jest Garbage Collector i jak działa?
Garbage Collector jest pewnego rodzaju odśmiecaczem pamięci. Pozwana na automatyczne zarządzanie dynamicznie przydzieloną pamięcią. Polega na sprawdzeniu wszystkich obiektów i zwalnianiu tych, dla których nie ma aktualnych referencji (czyli tych fragmentów pamięci, które nie są potrzebne).
6. Wady i zalety Singletona
Singleton to kontrowersyjny wzorzec projektowy, choć niektórzy programiści mówią na niego ”antywzorzec”. Trzeba dokładnie wiedzieć, w jakich okolicznościach można z niego skorzystać. Zalety Singletona to:
a) nie jest ograniczony do jednej instancji (przy niewielkiej zmianie tego podejścia można zarządzać większą ilością obiektów),
b) klasa utworzona przy pomocy tego wzorca może samodzielnie kontrolować liczbę swoich instancji,
c)proces pobierania instancji klas jest niewidoczny dla użytkowników.
Główną wadą Singletona jest sztywno określona liczba instancji. To podejście mocno utrudnia testowanie aplikacji i łamie co najmniej 2 zasady podejścia SOLID, najczęściej dwie pierwsze.
7. Czym jest refleksja w .NET?
To mechanizm, który pozwala na dostęp do metadanych (czyli informacjach przechowywanych np. w plikach exe) klas lub obiektów.
8. Czym jest CLR
To środowisko uruchomieniowe dla platformy .NET, przewidziane do pracy na wielu platformach i maszynach.
9. Czym jest extension method?
To metoda rozszerzeniowa, która umożliwia rozszerzenie funkcjonalności istniejących już typów. Może być zadeklarowana tylko w klasie statycznej i powinna być zadeklarowana przed typem, który chcemy rozszerzyć.
10. Czym jest SOLID?
To zbiór zasad, którymi należy się kierować, korzystając z obiektowych języków programowania. Skrót SOLID pochodzi od konkretnych zasad:
- S(ingle responsibility), czyli zasada jednej odpowiedzialności;
- O(pen/closed principle), czyli zasada otwarte/zamknięte – klasy powinny być otwarte na rozszerzenia i zamknięte na modyfikacje;
- L(iscov Substitution), czyli zasada podstawienia Liskova – funkcje które używają wskaźników lub referencji do klas bazowych, muszą być w stanie używać również obiektów klas dziedziczących po klasach bazowych, bez dokładnej znajomości tych obiektów;
- D(ependency inversion principle), czyli odwrócenia zależności – Wysokopoziomowe moduły nie powinny zależeć od modułów niskopoziomowych. Zależności między nimi powinny wynikać z abstrakcji.
11. Co to jest LINQ
LINQ (Language Integrated Query) to część technologii Microsoft .NET, która umożliwia zadawanie pytań na obiektach. W przestrzeni, która obsluguje LINQ są bazy danych, język XML, obiekty implementujący interfejs.
12. Czym jest koncepcja delegacji w C#?
Delegacje w C# są wskaźnikami metod, które są opakowane w konkretną klasę. Obiekt w delegacji przechowuje listę metod, które obsługuje. To jest bardzo bezpieczne rozwiązanie, którego poprawność jest sprawdzana za każdym razem.
13. Czym są obiekty mutable a czym immutable
Mutable, to zmienne, które mogą zostać zmienione po ich inicjalizacji. Typy immutable (niemutowalne) to typy zmienne. Obiekty immutable to wszystkie typy numeryczne, struktury oraz value type – klasy niemutowalne np. String, DateTime, typy anonimowe, ImmutableList. Te typy nie mogą zostać zmienione po ich inicjalizacji.