Operatory


Operatory uporządkowane względem priorytetu:

( ) grupowanie, np. (x+y) lub wywołania metody, np. f( )
.
->
operatory dostępu do składowych (klasy lub struktury).
[ ] operator indeksowania (np. tablicy).
++
--
operatory post-inkrementacji i -dekrementacji. Operatory pre-inkrementacji i –dekrementacji mają trochę niższe priorytety.
new pozwala na wywołanie konstruktora i dynamiczne alokowanie nowego obiektu w pamięci. Zwraca referencję do utworzonego obiektu, np. MyClass a = new MyClass( ) ;
typeof zwraca typ obiektu, np. System.Type t = typeof( MyClass );
!
~
negacja logicza ( ! ) lub bitowa ( ~ ).
* operator de-referencji (zwraca wartość zapisaną w miejscu o podanym adresie).
& operator pobrania adresu (razem z operatorem * jest stosowany przy wskaźnikach).
( ) operator rzutowania typu, np. (typ) wartość
*
/
%
operatory mnożenia, dzielenia oraz reszty z dzielenia (%).
+
-
operatory dodawania i odejmowania.
>>
<<
przesunięcie bitowe w prawo lub w lewo.
>
<
>=
<=
operatory relacji (większości, mniejszości, ... , mniejsze lub równe).
is operator zgodności typów. Np. if( x is int) { ... }
as : pozwala rzutować w dół hierarchii klas. Przy niepowodzeniu zwraca null.
==
!=
operatory równości i nierówności
|
&
^
operatory logiczne bitowe.
||
&&
operatory logicznej alternatywy ( || ) oraz koniunkcji ( && ).
?: trójargumentowy operator warunku. ( warunek ? a : b ) zwróci ‘a’ gdy warunek ma wartość true lub ‘b’ gdy warunek ma wartość false.
=
*=
operatory przypisania. Działanie (a *= b) jest równoważne ( a = a * b ). Podobnie działają inne operatory przypisania: /= += -= %= &= ...


Gdy operatory mają ten sam priorytet (np. + oraz - ) o ich kolejności decyduje łączność. Operatory przypisań oraz jednoargumentowe łączą od prawej strony, natomiast operatory dwuargumentowe (z wyjątkiem przypisań) łączą od lewej, np.
a = b = c jest równoważne: a = (b = c)
a + b + c jest równoważne: (a + b) + c

Ponadto istnieją operatory checked i unchecked służące do sprawdzania przepełnienia, np. int a = checked( b * c ) ; gdzie b oraz c są typu int

Operator checked oblicza wyrażenie podczas działania programu i jeśli jego wartość wychodzi poza dopuszczalny zbiór wartości zwraca wyjątek OverflowException (domyślnie poprawność jest sprawdzana tylko w momencie kompilacji). Operatora checked można używać także w stosunku do całego bloku instrukcji, np. checked { ... ; a = b * c ; ... } . Operator unchecked wyłącza natomiast sprawdzanie wyrażeń arytmetycznych podczas kompilacji (przydaje się bardzo rzadko)


prev | Strona Główna | next

Copyright © 2006 Daniel Dusiński
Wszelkie prawa zastrzeżone