Właściwości w programowaniu obiektowym C#

Właściwości - specjalny rodzaj pól.


Właściwości wspierają hermetyzacje danych wewnątrz klasy. Są to pola, które pozwalają określić rodzaj dostępu jako: tylko do odczytu, tylko do zapisu, lub do odczytu i zapisu. Właściwości łączą zachowanie pól i metod, wyglądają jak pola a więc możemy wyświetlić ich zawartość, zachowują się jak metody, co daje możliwość zastosowania w interfejsach.

Składnia deklaracji właściwości:

[modyfikator] typ  Identyfikator
{
    deklaracje_dostępu
}
gdzie:
  • modyfikatory - dostępne są modyfikatory: new, static, virtual, abstract, override oraz wszystkie modyfikatory dostępu (opcjonalne),
  • typ - typ danych (wymagane),
  • identyfikator - nazwa właściwości,
  • deklaracje_dostępu - blok get i/lub set, wymagany jest przynajmniej jeden z bloków get lub set.

Przykładowy kod - wersja pełna:

public class Entity
    {
        public int Id
        {
            get
            {
                return Id;
            }
            set
            {
                Id = value;
            }
        }
    }

Przykładowy kod - wersja skrócona:

public class Entity
{
    public int Id { get; set; }
}
Obie wersje działają tak samo.

Właściwości:

  • nie przyjmują argumentów,
  • nie mogą być typu void - musza zwracać wartość,
  • nazwy właściwości zaczynamy duża literą, natomiast pola prywatne małą literą,
  • mogą zostać przekazane do metod tylko poprzez wartość, niedozwolone jest przekazywanie właściwości poprzez referencje (ref) oraz wyjście (out),
  • odwołanie do właściwości wygląda tak samo jak odwołanie do pól,
  • mogą być deklarowane w interfejsach,
  • od C#2.0 dostępne są prywatne settery.

Więcej na temat właściwości:

http://msdn.microsoft.com/pl-pl/library/x9fsa0sw.aspx
Komentarze facebook (polub nasz profil na FB aby je zobaczyć):