Intrebari frecvente la interviu .NET

Incerc sa fac o compilatie a celor mai frecvente intrebari pe care le-am primit intr-un interviu de .NET.

I.) Care e diferenta intre overloading si overriding.

1.) Overloading denumit si polimorfism static este atunci cand ai doua metode cu acelas nume, dar cu numar diferit de parametri, se poate spune altfel ca au semnatura diferita, semnatura metodei este data de numele metodei si parametrii ei dar nu de tipul returnat.

2.) Overriding denumit si polimorfism dinamic este atunci cand suprascrii o metoda din clasa parinte pe care o mostenesti, metoda din clasa parinte trebuie sa aiba cuvantul cheie virtual, iar in clasa copil folosim cuvantul cheie override pentru a specifica ca vrem sa suprascriem metoda din clasa parinte.

II.) Cum se realizeaza mostenirea multipla in C#.

In C# o clasa poate extinde, mosteni o singura clasa dar se poate implementa mostenire multipla prin intermediul interfetelor, poate mosteni o clasa si implementa multiple interfete.

III.) Ce este o interfata ?

O interfata este un contract, clasa care implementeaza interfata trebuie sa implementeze metodele interfetei, interfata nu contine implementari, ci doar semnaturi de metode, propietati, evenimente, indexers.

IV.) Care este diferenta dintre o clasa abstracta si o interfata ?

O clasa abstracta este o clasa care nu poate fi instantiata scopul ei fiind acela de a fi mostenita, pe cand o interfata nu este o clasa, o clasa poate mosteni o singura clasa abstracta dar poate implementa multiple interfete, o clasa abstracta poate contine si implementari pe cand o interfata poate contine doar semnaturi. Un articol care explica destul de bine diferenta dintre o clasa abstracta si interfata Abstract Class versus Interface

V.) Ce este un delegat si la ce se foloseste ?

Un delegat este un tip de data ce reprezinta o referinta la o metoda cu o semnatura si un tip returnat. Delegatii se folosesc frecvent la asignarea unei metode la un eveniment. Eveniment += Delegat(Metoda)

VI.) Explica diferenta dintre deferred execution versus immediate execution in LINQ. Furnizeaza exemple.

In LINQ, deferred execution inseamna ca query-ul nu este executat in momentul cand e definit. Query-ul LINQ e definit de obicei prin asignarea acestuia unei variabile, definitia query-ului este atribuita variabilei fara a fi executata pana in momentul cand variabila query este iterata. De exemplu: Se poate de asemenea forta executarea imediata a query-ului, immediate execution. Executarea imediata este deseori fortata apeland metode ca si urmatoarele direct pe query: Average, Sum, Count, List, ToList, ToArray.  

Comentarii

Trimiteți un comentariu

Postări populare