În OOP, namespace-urile sunt containere pentru un grup de clase care au un context comun sau sunt clasificate prin funcționalitate comună. Namespace-urile nu au niciun fel de funcționalitate și nu este obligatoriu să le folosiți. Cu toate acestea, ele oferă câteva avantaje, cel mai important fiind abilitatea de a sorta și grupa codul în unități logice.… Read more
Archive for the ‘Obiecte’ Category
Namespace
miercuri, august 2nd, 2017Bit mask și atributul de enumerări Flags
duminică, iulie 16th, 2017Majoritatea programatorilor folosesc enumerările doar pentru a putea aplica un set predefinit de opțiuni din care utilizatorii pot alege. Cu toate acestea, enumerările au un dezavantaj major: pot deține o singură valoare la un moment dat. Să presupunem că avem următorul cod:
În acest caz, specificarea faptului că dorim să avem o direcție spre stânga pare OK.… Read more
Enumerări
duminică, iulie 16th, 2017Constante
sâmbătă, iulie 1st, 2017La fel ca și constantele din matematică, C# definește câmpuri speciale de clase numite constante. Așa cum indică și denumirea lor, odată declarate și inițializate, constantele își mențin valorile, interzicând modificarea lor ulterioară.
Există două tipuri de constante:
- Constantele pentru care valoarea este stabilită în timpul compilării (constante de timp de compilare)
- Constantele care au valoarea lor setată în timpul execuției (constante de timp de execuție)
Constantele de timp de compilare sunt declarate folosind modificatorul C# const:
1 |
[<modificatori_acces>] const <tip> <nume>; |
Un secret pe care nu mulți programatori C# îl știu este acela că de fapt constantele de timp de compilare sunt câmpuri statice, chiar dacă acestea nu conțin cuvântul cheie static, și compilatorul interzice utilizarea sa în declarație.… Read more
Structuri
sâmbătă, iunie 24th, 2017În C# și framework-ul .NET există două implementări ale conceptului de „clasă”, din punct de vedere al OOP: clase și structuri.
Știm deja că clasele sunt definite utilizând cuvântul cheie class; structurile sunt definite utilizând cuvântul cheie struct.… Read more
Metode generice
vineri, iunie 23rd, 2017Metodele generice, ca și clasele generice, sunt metode parametrizate (tipizate) pe care le folosim atunci când nu putem specifica tipul parametrilor metodei. De asemenea, la fel ca în cazul claselor generice, înlocuirea tipurilor necunoscute cu tipuri specifice se întâmplă la apelarea metodei.… Read more
Clase generice
duminică, iunie 18th, 2017Clasele generice, cunoscute și sub numele de tipuri de date generice, sau pur și simplu generice, sunt clase de tip necunoscut, până în momentul în care sunt instanțiate intr-un tip specific.
Deoarece acest concept este un pic mai greu de explicat, voi exemplifica mai întâi un caz specific care vă va ajuta să îl înțelegeți mai bine.… Read more
Clase imbricate
vineri, iunie 9th, 2017C# oferă clase imbricate care, la fel ca toate celelalte concepte de programare imbricate, implică un construct definit în interiorul corpului unui alt construct. Clasa definită în acest fel se numește „clasa interioară”, în timp ce clasa care o conține se numește „clasă exterioară”.… Read more
Membrii statici
joi, mai 18th, 2017După cum am văzut în ultimele lecții anterioare, modul obișnuit de a comunica cu o clasă este de a crea instanțe (copii) ale acesteia și apoi de a folosi obiectele rezultate. De fapt, acesta este avantajul principal al claselor – capacitatea de a crea copii care pot fi folosite și pot fi modificate individual.… Read more
Modificatorii de acces
duminică, mai 14th, 2017După cum sugerează și numele acestora, modificatorii de acces sunt niște concepte de programare care pot modifica nivelul de acces al unor elemente. În cuvinte mai complexe, modificatorii de acces sunt cuvinte cheie rezervate care adaugă informații pentru compilator și bucata de cod aferentă modificatorilor respectivi.… Read more