Operátory..
C# má mnoho operátorů převzatých z C, C++ a Javy. Programátorům zřejmě většina bude známá a na ty méně známé narazíme jinde.
Zde je k nahlédnutí seznam standardních operátorů. Při psaní třídy je možné změnit chování operátorů (přetížení operátoru), ačkoliv bychom to měli dělat, jen když to má smysl. V tabulce je ukázáno, které z operátorů je možné přetížit.
| kategorie: | jméno: | ukázka syntaxe: | přetížitelný?: |
|---|---|---|---|
| základní | seskupení | (a+b) | N |
| člen | A.B | N | |
| ukazatel na člena struktury | A->B | N | |
| volání metody | f(x) | N | |
| následný inkrement | c++ | A | |
| následný dekrement | c-- | A | |
| volání konstruktoru | c = new Coord(); | N | |
| alokace Array stack | int* c = stackalloc int[10] | N | |
| velikost struktury | sizeof (int) | N | |
| arithmetic check on (kontrola přeteční zapnuta) | checked {byte c = (byte) d;} | N | |
| arithmetic check off (kontrola přeteční vypnuta) | unchecked {byte c = (byte) d;} | N | |
| Unární | kladná hodnota | +10 | A |
| záporná hodnota | -10 | A | |
| negace | !(c==d) | A | |
| bitový doplněk | ~(int x) | A | |
| předcházející inkrement | ++c | A | |
| předcházející dekrement | --c | A | |
| přenos typu | (myType)c | N | |
| hodnota adresy | int* c = d; | N | |
| adresa hodnoty | int* c = &d; | N | |
| typové operátory | ověření kompatibility | a is String | N |
| vrací info o typu | typeof (int) | N | |
| matematické | násobení | c*d | A |
| dělení | c/d | a | |
| modulo | c%d | A | |
| sčítání | c+d | A | |
| odčítání | c-d | A | |
| posun bitu vpravo | c>>3 | A | |
| posun bitu vlevo | c<<3 | A | |
| relační a logické | menší než | c<d | A |
| větší než | c>d | A | |
| menší nebo rovno | c<=d | A | |
| větší nebo rovno | c>=d | A | |
| rovná se | c==d | A | |
| nerovná se | c!=d | A | |
| bitové and | c&d | A | |
| bitové or | c|d | A | |
| logické and (A) | c&&d | N | |
| logické or (nebo) | c||d | N | |
| zkrácená podmínka | int c=(d<10) ? 5:15 | N |
Přetížení operátorů
Pro přetížení operátoru ve třídě definujeme metodu se stejným názvem jako je název operátoru:
public static bool operator == (Value a, Value b)
{return a.Int == b.Int}
Pokud je operátor součástí logického páru, měly by být přetíženy oba. Takové páry jako jsou tyto:
== and != < and > <= and >=Zdroj: http://www.softsteel.co.uk/tutorials/cSharp/lesson8.html
TIP: Přetáhni ikonu na hlavní panel pro připnutí webu






