8. Operatori
C# ima popriličan broj operatora koji su preuzeti iz C-a, C++-a i Jave.
Tablica dolje prikazuje listu standardnih operatora.Primjetite da je prilikom pisanja klasa moguće promijeniti defaultno djelovanje nekih operatora (preopteretiti operatore). Sljedeća tablica prikazuje i koji se operatori mogu preopteretiti.
Kategorija Naziv Primjer sintakse Preopterećenje? Primarni operatori Grupiranje (a+b) Ne Član A.B Ne Dohvaćanje elementa strukture A->B Ne Poziv metode f(x) Ne Povećavanje na kraju c++ Da Smanjivanje na kraju c-- Da Konstruktorski poziv c = new Coord(); Ne Alokacija stoga polja int* c = stackalloc int[10] Ne Veličina tipa sizeof (int) Ne Operator checked() checked {byte c = (byte) d;} Ne Operator unchecked() unchecked {byte c = (byte) d;} Ne Unarni operatori Operator plus +10 Da Operator minus -10 Da Logička negacija !(c==d) Da Bitovne komplementacije ~(int x) Da Povećavanje na početku ++c Da Smanjivanje na početku --c Da Cast tip (tip_cast)c Ne Vrijednost na adresi int* c = d; Ne Adresa vrijednosti int* c = &d; Ne Operatori tipa Jednakost tipa / Podudarnost a is String Ne Dohvaćanje tipa typeof (int) Ne Aritmetički op. Množenje c*d Da Dijeljenje c/d Da Ostatak c%d Da Zbrajanja c+d Da Oduzimanja c-d Da Pomak udesno c>>3 Da Pomak ulijevo c<<3 Da Relacijski i logički op. Manje od c<d Da Veće od c>d Da Manje ili jednako c<=d Da Veće ili jednako c>=d Da Jednakost c==d Da Ne jednakost c!=d Da Bitovni operator AND c&d Da Bitovni inkluzivni OR c|d Da Logički i c&&d Ne Logički ili c||d Ne Uvjetni op. int c=(d<10) ? 5:15 Ne
Preopterećenje operatora
Kako bi preopteretili operator u klasi, možemo korisititi ključnu riječ operatora. Na primjer, sljedeći kod preopterećuje operator jednakosti (pogledaj lekciju 13 za detalje o ovoj metodi).
public static bool operator == (vrijednost a, vrijednost b) {return a.Int == b.Int}
Gdje je operator jedan od logičkih, oba operatora bi trebali biti preopterećani kao i samo jedan. Ti parovi su sljedeći:
== and != < and > <= and >=


