Properties czy Metoda?

0

Hej,
Przerabiam książkę "C# - rusz głową" i zauważyłem pewną rozbieżność. W książce czasami pewne operacje są zawarte w metodach inne właśnie w properties. Chciałbym dowiedzieć się z czego to wynika, a jeżeli to jest bezpodstawne to którą formę wybrać.

Kiedy używać properties, a kiedy metody?

Do prostej operacji użyto metody.

  private int cakeSize()
        {
            if (NumbersOfPeople <= 4)
                return 20;
            else
                return 40;
        }

Do bardziej moim zdaniem operacji użyto jednak properties.

 
virtual public decimal Cost
        {
            get
            {
                decimal totalCost = CalculateCostOfDecoration();
                totalCost += NumbersOfPeople * CostOfFoodPerPerson;
                if (NumbersOfPeople >= 12)
                    totalCost += 100;

                return totalCost;
            }

        }
0

tak jak mozesz zauwazyc metoda jest private, zostaje w obrebie klasy ,wlasciwosci stosuje sie do pokazania czegos na zewnatrz, daja one dodatkowe zabezpieczenie podczas pobierania wartosci:get oraz ustawiania:set.
Wlasciwosc reprezentuje jakas wartosc plus mozna dodatkowo okreslic walidacje czy co tam chcesz zwracanej, ustawianej wartosci

0

Rób jak wolisz ale po to są w C# własności żeby ich używać zamiast jakichś metod typu getSomething czy setSomething etc... W wielu przypadkach sama architektura wymusza stosowanie własności np. bindowanie w WPF.

4

Widać autorzy książki sami nie bardzo ogarniają, albo po prostu pokazują na losowych przykładach.

Ja to widzę tak:
Właściwości - zwrócenie prostej wartości z pola, albo prostego wyniku jakichś obliczeń/przetwarzania danych (np. dodawanie, mnożenie, połączenie stringów, itp.).
Metody - bardziej pracochłonna i czasochłonna operacja, która np. wymaga odwołania do bazy danych czy innego źródła albo wykonanie dużej liczby obliczeń.

1 użytkowników online, w tym zalogowanych: 0, gości: 1