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 (zwracanullprzy błędzie).
typeof– zwraca obiektTypedla 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
aslub metodyConvert.
3. Kolejność wykonywania operatorów
Podobnie jak w matematyce – np. najpierw mnożenie/dzielenie, potem dodawanie/odejmowanie. Najważniejsze priorytety:
++,--(prefiksowe),!,~*,/,%+,-<<,>><,<=,>,>===,!=&^\|&&\|\|?:=,+=,-=…