get; set; – czyli o akcesorach w C#

Z akcesorów (czy też właściwości) korzysta każdy poważny programista C# (jak i innych języków) na burzliwe czasy. Dają one duży komfort w poruszaniu się między klasami, szczególnie podczas programowania zespołowego – ułatwiają uporządkowanie kodu i zwiększają jego bezpieczeństwo.

Czym jest akcesor (właściwość)?

W wielkim skrócie akcesory zapewniają dostęp z innej klasy, do prywatnych pól drugiej. Jako, że jednym z filarów programowania obiektowego jest hermetyzacja kodu (oddzielenie klas od siebie), dlatego zmienne wewnątrz pojedynczej klasy powinny być prywatne. Poniżej podam przykład pewnego bardzo poprawnego obiektowego kodu.

Stwórzmy przykładową klasę, nazwijmy ją „kanapka”.

Class Kanapka
{
  private int _plastry_miesa = 3; //przykładowa prywatna wartość w klasie
  public int ile_miesa() 
    {
    return _plastry_miesa;
    }
  public> void ustaw_ile_miesa(int ile)
    {
    _plastry_miesa = ile;
    }
}

Klasa ta ma jedną prywatną zmienną ( _plastry_miesa) oraz dwie publiczne funkcje – ile_miesa oraz ustaw_ile_miesa. Pierwsza wymieniona jest tzw. getterem. Tzn. daje ona możliwość odczytania poza klasą prywatnej zmiennej. Druga jest tzw. setterem. Pozwala ona zmienić prywatną wartość w zaimplementowanej instancji klasy. Kod ten jest jednak całkiem długi, a przy większych projektach nawet uciążliwy do ciągłego jego stosowania. Autorzy C# postanowili jednak to ulepszyć – dzięki nim powstały akcesory (ang. access – dostęp) get oraz set. Pozwalają one skrócić kod i zwiększyć jego bezpieczeństwo. Dlatego w klasie „Kanapka” zamiast funkcji symbolizujących getter i setter użyjemy akcesorów get i set.

Class Kanapka
{
  private int _plastry_miesa = 3;
  public int plastry()
    {
      get
      {
        return _plastry_miesa;
      }
      set
      {
        _plastry_miesa = value; //value reprezentuje wartość przypisaną do funkcji
      }
    }
}

W ten sposób programista komunikuje się z typami innych klas za pomocą publicznych wartości. Czasem jeżeli chcemy zrobić mniej szczegółowy kod zajmujący jeszcze mniej miejsca twórcy C# udostępnili nam kolejną sztuczkę.

Class Kanapka
{
   public int Plastry { get; set; }
}
Class Program
{
static void Main(string[] args)
  {
    Kanapka k = new Kanapka();
    k.Plastry = 21;
    Console.Write(k.Plastry);
    Console.ReadKey();
  }
}

W tym drobnym kawałeczku kodu zadeklarowaliśmy jednocześnie dwie klasy – „Kanapka” oraz naszą główną klasę, gdzie wykonuje się kod. Tam stworzyliśmy instancję klasy „Kanapka” (Kanapka k = new Kanapka();), i operowaliśmy na odpowiednich publicznych zmiennych udostępnionych przez tę instancję.

To by było na tyle, jeśli chcecie dowiedzieć się czegoś więcej śmiało piszcie w komentarzach :3

 

Reklamy

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s