Operatory w języku C#

1. Czym są operatory?

  • Operator to symbol lub słowo kluczowe służące do wykonywania operacji na danych (operandach).
  • W C# operatory są wbudowane w język, a niektóre można przeciążać (operator overloading).

2. Klasyfikacja operatorów

2.1. Operatory arytmetyczne

Służą do wykonywania działań matematycznych na liczbach.

Operator Opis Przykład Wynik
+ dodawanie 5 + 3 8
- odejmowanie 5 - 3 2
* mnożenie 5 * 3 15
/ dzielenie 10 / 3 3 (dla int) lub 3.33 (dla double)
% reszta z dzielenia (modulo) 10 % 3 1
++ inkrementacja (zwiększa o 1) x++ jeśli x = 5, po operacji = 6
-- dekrementacja (zmniejsza o 1) x-- jeśli x = 5, po operacji = 4

Uwaga: ++ i -- występują w wersji postfiksowej (x++) i prefiksowej (++x).

  • x++ → najpierw używa wartości, potem zwiększa.
  • ++x → najpierw zwiększa, potem używa.

2.2. Operatory przypisania

Służą do przypisywania wartości do zmiennej.

Operator Opis Przykład Wynik
= przypisanie x = 10 x = 10
+= dodanie i przypisanie x += 5 x = x + 5
-= odjęcie i przypisanie x -= 5 x = x - 5
*= pomnożenie i przypisanie x *= 5 x = x * 5
/= podzielenie i przypisanie x /= 5 x = x / 5
%= modulo i przypisanie x %= 3 x = x % 3

2.3. Operatory porównania (relacyjne)

Zwracają wartość logiczną true albo false.

Operator Opis Przykład Wynik
== równość 5 == 5 true
!= różność 5 != 3 true
> większe niż 7 > 3 true
< mniejsze niż 2 < 5 true
>= większe lub równe 5 >= 5 true
<= mniejsze lub równe 3 <= 5 true

2.4. Operatory logiczne

Działają na wartościach bool.

Operator Opis Przykład Wynik
&& logiczne „i” (AND) true && false false
\|\| logiczne „lub” (OR) true \|\| false true
! negacja !true false
^ XOR (różnica symetryczna) true ^ true false

2.5. Operatory bitowe

Działają na poziomie bitów zmiennych całkowitych.

Operator Opis Przykład Wynik (binarnie)
& bitowe AND 6 & 3 2 (110 & 011 = 010)
\| bitowe OR 6 \| 3 7 (110 | 011 = 111)
^ bitowe XOR 6 ^ 3 5 (110 ^ 011 = 101)
~ bitowe NOT ~6 -7 (w systemie uzupełnień do dwóch)
<< przesunięcie w lewo 6 << 1 12 (110 → 1100)
>> przesunięcie w prawo 6 >> 1 3 (110 → 011)

2.6. Operator warunkowy (trójargumentowy)

Skrócona forma instrukcji if-else.

✅ Wynik:

Pełnoletni

2.7. Operatory specjalne

  • is – sprawdza, czy obiekt jest określonego typu.
  • as – próbuje rzutować obiekt na inny typ (zwraca null przy błędzie).
  • typeof – zwraca obiekt Type dla danego typu.
  • sizeof – zwraca rozmiar w bajtach typu wartościowego.
  • checked / unchecked – kontrola przepełnień arytmetycznych.

2.8. Operatory rzutowania

  • Jawne rzutowanie: (int), (double).
  • Konwersja bezpieczna przez as lub metody Convert.

3. Kolejność wykonywania operatorów

Podobnie jak w matematyce – np. najpierw mnożenie/dzielenie, potem dodawanie/odejmowanie. Najważniejsze priorytety:

  • ++, -- (prefiksowe), !, ~
  • *, /, %
  • +, -
  • <<, >>
  • <, <=, >, >=
  • ==, !=
  • &
  • ^
  • \|
  • &&
  • \|\|
  • ?:
  • =, +=, -=

4. Przykładowy program