Skip to main content

Posts

Showing posts with the label gehttp://www.blogger.com/img/blank.gifnerica

Covarianta si contravarianta in .NET 4.0

Covarianta si contravarinata au existat de la .NET 1.0. Schimbarea pe care a adus-o .NET 4.0 a fost ca a introdus aceste funcționalități si in tipurile generice. In teorie, un tip T este mai mare decat S, daca si numai daca S este un subtip( derivat) din T. Din acest enunt putem sa ajungem la concluzia ca exista o oarecare unitate de masura prin care se pot descrie tipurile( in forma unui arbore). Putem sa consideram ca T este clasa de baza, iar S este clasa derivata. Covarianta: daca Generic este mai mare sau egal decat Generic. Covarianta se folosește in special cand vrem ca de la ceva generic sa ajungem la ceva mai particular. Covarianta ne permite sa tratam un obiect ca si cum ar fi mai sus in ierarhie. Din aceasta cauza se ajunge ca proprietățile sa fie read-only din tipul generic. De exemplu daca avem un tip de baza Animal si doua clase care moștenesc aceasta clasa( Caine, Sarpe), in mod normal nu am putea sa avem: public class Animal{} public class Caine:Animal{} public class Sa...