Properties czy Metoda?

Properties czy Metoda?
BP
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 7 lat
  • Postów:3
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.

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

Do bardziej moim zdaniem operacji użyto jednak properties.

Kopiuj
 
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

grzesiek51114
grzesiek51114
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 4 lata
  • Postów:2442
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.

edytowany 1x, ostatnio: grzesiek51114
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 8 godzin
  • Lokalizacja:Wrocław
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ń.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.