Risipa de key_press | Programare

Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple

Risipa de key_press | Programare - Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple

Tipurile referinta in .Net

Tipurile referinta permit accesul la datele necesare din locuri diferite ale programului.

Declararea tipurilor referinta nu implica automat alocarea de spatiu, ca in cazul tipurilor valoare. E nevoie de alocare explicita de memorie pentru obiectele propriu-zise, iar la atribuire este copiata referinta in destinatie, obiectul spre care indica ramanand acelasi (“aliasing”, “reference semantics”). O imagine explicativa se gaseste in articolul Tipuri de date in C#.

Structura completa a tipurilor de date :

structura Tip Date

Tipurile referinta se clasifica astfel :

Tipul clasa – class

Clasa este unitatea de baza pe care este contruit limbajul C#. Clasele ofera baza pentru programarea orientata pe obiect. Ele definesc natura obiectelor si reprezinta un sablon prin care se defineste forma unui obiect. Intr-o clasa sunt definite datele si codul care prelucreaza acele date. Pentru a stapani bine C#, elementul clasa este esential ( intreaga activitate a unui program C# se desfasoara in interiorul unei clase).

Exemplu :

public class Student
    {

        public int nota;
        public string nume;
        public string prenume;

        //metoda de afisare
        public void Afiseaza()
        {
            Console.WriteLine("{0} {1} are nota {2}", nume, prenume, nota);
        }
    }

Tipurile clasa suporta mostenirea, un mecanism prin care o clasa ( derivata ) preia anumite caracteristici ale unei alte clase ( de baza). Un exemplu concret va fi dezbatut in articolul despre mostenire.

Tipul interfata – interface

O interfata defineste un set de metode care vor fi implementate de o clasa. Interfata poate fi privita ca un “contract” iar clasa sau structura care o implementeaza, trebuie sa il respecte.

O interfata reprezinta o constructie pur abstracta si poate contine metode, proprietati, evenimente, indecsi. O interfata poate mosteni mai multe interfete, iar o clasa poate implementa mai multe interfete. Un exemplu concret va fi dezbatut in articolul despre interfete.

Tipul delegat – delegate

Prin cuvantul cheie delegate se defineste o delegare care nu inseamna decat o referinta catre o metoda. Asadar, la crearea unui tip delegat se creaza un obiect care poate memora o referinta catre o metoda, metoda care poate fi apelata prin intermediul referintei. Un exemplu concret va fi dezbatut in articolul despre delegate.

Tipul obiect – object

Acest tip se bazeaza pe Sytem.Object din .Net Framework.

Pe langa exemplele din articolul Conversii despre boxing si unboxing unde se prezinta atribuirea valorilor de orice fel variabilelor de tip object, adaug un exemplu in care se atribuie o valoare referinta.

object a;

a = new Student();
Student student;
student = (Student)a;
Console.WriteLine(student.nota);

Tipul sir de caractere – string

Tipul string este unul din cele mai importante si utilizate tipuri de date. El defineste si implementeaza sirurile de caractere. Spre deosebire de alte limbaje, unde tipul string este un tablou de caractere, in C# tipul string este un obiect. Clasa string are o dimensiune relativ mare.

Exista doua tipuri de siruri

regulate – contine intre ghilimele zero sau mai multe caractere, inclusiv secvente escape (reprezentarea caracterelor care nu au reprezentare grafica si a celor speciale).

caractere escape
string sir = "Limbajul C# este accesibil!";

“verbatim” – se folosesc cand se fac referiri la fisiere, la prelucrarea lor, la registri. Tipul acesta de sir incepe cu “@” inainte ghilimelor.

string cale = @"c:\TipReferinta\string.cs";

Pentru concatenarea (unirea) sirurilor de caractere se mai foloseste operatorul “+”. Exemplu :

string sirConcatenat = "Limbajul " + "C#" + " " + "este accesibil";

Pentru comparare se folosesc “==” si “!=” – egalitate inseamna daca ambele sunt null sau daca ambele au aceeasi lungime si pe fiecare pozitie au caractere respectiv identice. Un exemplu complet in articolul despre clasa System.Text.

Category: Uncategorized

Your email address will not be published. Required fields are marked *

*