Operator jest symbolem, który informuje kompilator o tym jakie operacje logiczne lub matematyczne mają zostać wykonane. C# posiada duży zestaw wbudowanych operatorów. Zaliczamy do nich:
  • operatory arytmetyczne;
  • operatory relacyjne;
  • operatory logiczne;
  • operatory bitowe;
  • operatory przypisania;
  • różne operatory.
W poniższym rozdziale wszystkie operatory zostaną omówione jeden po drugim.

Operatory arytmetyczne

W poniższej tabeli wszystkie operatory matematyczne wspierane przez język C#. Dla ułatwienia załóżmy, że A = 10 oraz B = 20.
Operator Opis Przykład
+ dodawanie argumentów A + B = 30
- odejmowanie argumentów A – B = -10
* mnożenie operatorów A * B = 200
/ dzielenie operatorów B / A = 2
% operacja dzielenia modulo B % A = 0
++ zwiększanie wartości argumentu o 1 A++ = 11
-- zmniejszanie wartości argumentu o 1 A-- = 9

Operatory relacyjne

W poniższej tabeli wszystkie operatory relacyjne wspierane przez język C#. Dla ułatwienia załóżmy, że A = 10 oraz B = 20.
Operator Opis Przykład
== sprawdza czy wartości argumentów są równe, jeżeli tak zwraca flagę true (A == B) false.
!= sprawdza czy wartości argumentów są równe, jeżeli wartości nie są równe zwraca true (A != B) true
> sprawdza czy wartość lewego argumentu jest większa od prawego, jeżeli tak zwraca flagę true (A > B) false
< sprawdza czy wartość lewego argumentu jest mniejsza od prawego, jeżeli tak zwraca flagę true (A < B) true
>= sprawdza czy argument po lewej stronie jest większy bądź równy argumentowi po prawej stronie, jeżeli tak zwraca flagę true (A >= B) false
<= sprawdza czy argument po lewej stronie jest mniejszy bądź równy argumentowi po prawej stronie, jeżeli tak zwraca flagę true (A <=B ) true

Operatory logiczne

W poniższej tabeli wszystkie operatory logiczne wspierane przez język C#. Dla ułatwienia załóżmy, że A = 10 oraz B = 20.
Operator Opis Przykład
&& logiczny operator i. Jeżeli oba argumenty są zerowe to warunek jest prawdziwy (A && B) false
|| logiczny operator lub. Jeżeli którykolwiek z argumentów nie jest równy zero to warunek jest prawdziwy (A || B) true
! logiczny operator zaprzeczenia. Używany jest do zmiany stanu logicznego argumentu. Jeżeli argument jest prawdziwy to jego zastosowanie zmieni jego wartość na nieprawdziwą !(A && B) true

Operatory bitowe

Operatorów bitowych używany do wykonywania operacji na bitach. Poniższa tabela zawiera zestawienie dla następujących operatorów: &, | oraz ^.
p q p & q p | q p ^ q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1
Załóżmy, że A = 60 oraz B = 13. W zapisie binarnym to:
A = 0011 1100
B = 0000 1101

A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~A = 1100 0011

Operatory przypisania

W poniższej tabeli wszystkie operatory przypisania wspierane przez język C#.
Operator Opis Przykład
= prosty operator przypisania. Przypisuje wartości z prawej strony operatora do zmiennej po jego lewej stronie C = A + B
+= operator dodawania i przypisywania w jednym. Dodaje wartość z prawej strony operatora do zmiennej po jego lewej stronie C += A
-= operator odejmowania i przypisywania w jednym. Odejmuje wartość z prawej strony operatora od zmiennej po jego lewej stronie C -= A
*= operator mnożenia i przypisania w jednym. Mnoży wartość po prawej stronie operatora przez wartość zmiennej znajdującej się po jego lewej stronie C *= A
/= operator dzielenia i przypisania w jednym. Dzieli wartość zmiennej po lewej stronie operatora przez wartość znajdującą się po prawej stronie operatora C /= A
%= operator dzielenia modulo. Wartość z dzielenia argumentów zostaje przypisana do zmiennej C %= A
<<= przesunięcie bitów w lewo wraz z operatorem przypisania C <<= 2
>>= przesunięcie bitów w prawo wraz z operatorem przypisania C >>= 2
&= operacja bitowa 'i' wraz z operatorem przypisania C &= 2
^= operacja bitowa 'xor (alternatywa wykluczająca)' wraz z operatorem przypisania C ^ 2
|= operacja bitowa 'lub' wraz z operatorem przypisania C |= 0

Różne operatory

W języku C# mamy kilka dodatkowych, bardzo ważnych operatorów takich jak: sizeof, typeof oraz ? :.
Operator Opis Przykład
sizeof() zwraca rozmiar typu danych w bajtach sizeof(int), rozmiar: 4
typeof() zwraca typ klasy typeof(StreamReader);
& zwraca adres w pamięci danej zmiennej &a, zwraca rzeczywisty adres zmiennej a
* wskaźnik do zmiennej *a, tworzy wskaźnik ‘a’ dla zmiennej
? : wyrażenie warunkowe jeżeli wyrażenie jest prawdziwe ? wartość X : w przeciwnym razie wartość Y
is sprawdzenie czy obiekt jest danego typu if (Audi is Car) // sprawdzenie czy Audi jest obiektem klasy Car
as rzutowanie bez zwrcania wyjątku jeżeli rzutowanie się nie uda Object obj = new StringReader(„Witaj”);
StringReader r = obj as StringReader;