Proprietăți

Proprietatea este un membru al clasei care ne permite să accedem sau să modificăm caracteristicile unui obiect sau al clasei.

Sintaxa este:

[atribut]modificatorAcces tipReturnat numeProprietate
{
get
{
}
set
{
}
}

unde:

modificatorAcces – poate fi orice modificatorAcces amintit, precum și new, static, virtual, sealed, override, abstract, extern.
tipReturnat – poate fi orice tip valid în C#, el specificând tipul folosit de accesorii get (tipul valorii returnate) şi set (tipul valorii atribuite).

Accesorul get corespunde unei metode fără parametri, care returnează o valoare de tipul proprietății.

Accesorul set corespunde unei metode cu un singur parametru, de tipul proprietății și tip de retur void.

Dacă proprietatea nu este abstractă sau externă, poate să apară una singură dintre cele două metode de acces sau amândouă, în orice ordine.

Este o manieră de lucru recomandabilă aceea de a proteja datele membru (câmpuri) ale clasei, definind instrumente de acces la acestea: pentru a obține valoarea câmpului respectiv (get) sau de a memora o anumită valoare în câmpul respectiv (set). Dacă metoda de acces get este perfect asimilabilă cu o metodă ce returnează o valoare (valoarea datei pe care vrem s-o obținem sau valoarea ei modificată conform unei prelucrări suplimentare specifice problemei în cauză), metoda set este asimilabilă cu o metodă care are un parametru de tip valoare (de intrate) și care atribuie (sau nu, în funcție de context) valoarea respectivă câmpului. Cum parametrul corespunzător valorii transmise nu apare în structura sintactică a metodei, este de știut că el este implicit identificat prin cuvântul value.

using System;
using System.Collections.Generic;
using System.Text;
namespace GetSet
{
    class ClasaMea
    {
        private int x;
        public int P
        {
            get
            {
                Console.WriteLine("get");
                return x;
            }
            set
            {
                Console.WriteLine("set");
                x = value;
            }
        }
    }
    class Program
    {
        public static void Main(string[] args)
        {
            ClasaMea obiect = new ClasaMea();
            //linia urmatoare apeleaza accesorul
            //'set' din proprietatea P si ii
            //paseaza 10 lui ‘value’
            obiect.= 10;
            int xVal = obiect.P;
            // linia urmatoare apeleaza accesorul
            //'get' din proprietatea P
            Console.WriteLine(xVal);
            Console.ReadLine();
        }
    }
}

Rezultat

poo2

Leave a comment