Najlepiej zostaw sobie tylko i wyłącznie zmienną cenaNetto oraz vat. CenaBrutto będzie obliczana na żądanie (np. w ramach get-a).
Ale co w tym jest najlepszego, bo nie rozumiem? Jeśli towar ma znaną cenę netto i znaną wartość VAT, to cenę brutto wystarczy obliczyć jednokrotnie, podczas tworzenia obiektu, a nie miliard razy przy każdym odwołaniu. Ja wiem, że może to nie jest krytyczne z punktu widzenia wydajności, ale obliczanie za każdym razem jest po prostu brzydkie.
Cennik dobrze goda
operowanie tylko na jednej zmiennej skoro ta druga jest tylko przeskalowaną pierwszą będzie lepsze bo jest mniejsze prawdopodobieństwo pomyłki
w tym kodzie trzeba uważać na to żeby cały czas wewnątrz klasy operować na CenaNetto, a nie cenaNetto - taka pomyłka będzie dopuszczalna, bardzo łatwa do popełnienia (wystarczy nie docisnąć dobrze shift) i trudna do wykrycia
poza tym musisz pamiętać żeby to działało obustronnie - jeżeli ustalając CenaNetto, automatycznie zmienia się CenaBrutto to zmieniając CenaBrutto (skoro dajesz taką możliwość) powinna się zmieniać CenaNetto
tak więc jeżeli chcesz sobie zaoszczędzić czasem nawet godzin ślęczenia nad kodem żeby znaleźć błąd "choć wszystko wygląda ok" to lepiej nie dopuszczaj do takich sytuacji
no chyba że to bardzo krótka klasa, tak jak przedstawiona tutaj
i bez przesady - dodanie prostego *1.23 do gettera to nic w porównaniu do ilości instrukcji które procesor i tak musi wykonać żeby się dobrać do gettera
gettery i settery z natury coś robią poza zwykłym przekazaniem wartości - jeśli chcesz mieć coś obliczone raz to wynik przepisujesz do zmiennej
a skoro wszystkie wartości miałaby wyglądać tylko tak
public decimal CenaBrutto
{
get { return cenaBrutto; }
set { cenaBrutto = value; }
}
to po co w ogóle to robić? nie lepiej upublicznić cenaBrutto
?