Przeciążanie operatorów w C#
Teraz bardziej życiowy przykład.
Z operatorów mogą korzystać również nasze własne obiekty, ale w normalnej sytuacji nie będą one wiedziały jak mają skorzystać z tych operatorów. Na szczęście C# daje nam możliwość przeciążania operatorów, dzięki której będziemy mogli nauczyć nasze klasy zupełnie nowych możliwości.
Wyobraź sobie coś takiego, gdyby obiekty faktur można było dodawać do siebie i dzięki temu otrzymalibyśmy sumę wszystkich faktur?
Okazuje się, że w C# jest to możliwe i jest to bardzo proste.
Przykład zaczniemy od zdefiniowania bazowej klasy Invoice:
Teraz gdy mamy naszą własną klasę Invoice, możemy utworzyć dwa przykładowe obiekty naszej klasy:
I teraz gdybyśmy chcieli dodać te dwa obiekty do siebie:
To przekonamy się, że taka operacja jest niemożliwa, i nasz kod się nie będzie kompilował.
Aby to zmienić musimy dodać obsługę operatora do naszej klasy Invoice:
Teraz będziemy mogli skorzystać z operatora dodawania co wyświetli na sumę z obu faktur.
I cały kod programu: