Expresii C#

Tradus din această pagină oficială de documentație Microsoft.

Expresiile sunt construite din operanzi și operatori. Operatorii unei expresii indică ce operații să se aplice operanzilor. Exemple de operatori includ +, -, *, /, și new. Exemple de operanzi includ literali, câmpuri, variabile locale, și expresii.

Când o expresie conține operatori multipli, precedența operatorilor controlează ordinea în care operatorii individuali sunt evaluați. De exemplu, expresia x + y * z este evaluată ca x + (y * z) deoarece operatorul * are precedență mai mare decât operatorul +.

Când un operand are loc între doi operatori cu aceeași precedență, asociativitatea operatorilor controlează ordinea în care operațiile sunt realizate:
  • Cu excepția operatorilor de atribuire, toți operatorii binari sunt asociativi la stânga, aceasta însemnând că operațiile sunt realizate de la stânga la dreapta. De exemplu, x + y + z este evaluat ca (x + y) + z.
  • Operatorii de atribuire și operatorul condițional (?:) sunt asociativi la dreapta, însemnând că operațiile sunt realizate de la dreapta către stânga. De exemplu, x = y = z este evaluat ca x = (y = z).
Precedența și asociativitatea pot fi controlate folosind paranteze. De exemplu, x + y * z mai întâi multiplică y cu z și apoi adaugă rezultatul la x, dar (x + y) * z mai întâi adaugă x și y și apoi multiplică rezultatul cu z.

Majoritatea operatorilor pot fi supraîncărcați. Supraîncărcarea unui operator permite implementări definite de utilizator ale operatorului să fie specificate pentru operații în care unul sau ambii operatori sunt de un tip clasă sau struct definit de utilizator.

Cele ce urmează sumarizează operatorii C#, listând categoriile de operatori în ordinea precedenței de la cea mai mare la cea mai mică. Operatorii din aceeași categorie au precedență egală. In fiecare categorie este o listă de expresii din acea categorie împreună cu descrierea acelui tip de expresie.

  • Primar
    • x.m : Accesarea de membru
    • x(...) : Invocarea de metodă sau delegat
    • x[...] : Acces prin tablou sau indexator
    • x++ : Post-incrementare
    • x-- : Post-decrementare
    • new T(...) : Creare de obiect sau delegat
    • new T(...){...} : Creare de obiect cu inițializator
    • new {...} : Inițializator de obiect anonim
    • new T[...] : Creare de tablou
    • typeof(T) : Obține obiectul Type pentru T
    • checked(x) : Evaluează expresia în context verificat
    • unchecked(x) : Evaluează expresia în context neverificat
    • default(T) : Obține valoarea implicită a tipului T
    • delegate {...} : Funcție anonimă (metodă anonimă)
  • Unar
    • +x : Identitate
    • -x : Negație
    • !x : Negație logică
    • ~x : Negație pe biți
    • ++x : Pre-incrementare
    • --x : Pre-decrementare
    • (T)x : Convertește x la tipul T în mod explicit
    • await x : Așteaptă asincron ca x să se termine
  • Multiplicativ
    • x * y : Înmulțire
    • x / y : Împărțire
    • x % y : Rest
  • Aditiv
    • x + y : Adunare, concatenare de șiruri, combinare de delegați
    • x - y : Scădere, ștergere delegat
  • Deplasare
    • x << y : Deplasare la stânga
    • x >> y : Deplasare la dreapta
  • Relațional și testare de tip
    • x < y : Mai mic decât
    • x > y : Mai mare decât
    • x <= y : Mai mic decât sau egal cu
    • x >= y : Mai mare decât sau egal cu
    • x is T : Intoarce true dacă x este un T, fals altfel
    • x as T : Intoarce x tipizat ca T, sau null dacă x nu este un T
  • Egalitate
    • x == y : Egal
    • x != y : Nu este egal
  • SI (en. AND) logic
    • x & y : SI întreg pe biți, SI boolean logic
  • SAU EXCLUSIV (en. XOR) logic
    • x ^ y : SAU EXCLUSIV întreg pe biți, SAU EXCLUSIV boolean logic
  • SAU (en. OR) logic
    • x | y : SAU întreg pe biți, SAU boolean logic
  • SI condițional
    • x && y : Evaluează y doar dacă x nu este false
  • SAU condițional
    • x || y : Evaluează y doar dacă x nu este true
  • Coalescența null (en. null coalescing)
    • x ?? y : Evaluează la y dacă x este null, la x altfel
  • Condițional
    • x ? y : z : Evaluează y dacă x este true, z dacă x este false
  • Atribuire sau funcție anonimă
    • x = y : Atribuire
    • x op= y : Atribuire compusă; operatori suportați sunt
      • *= /= %= += -= <<= >>= &= ^= |=
    • (T x) => y : Funcție anonimă (expresie lambda)
Tradus din această pagină oficială de documentație Microsoft.

Niciun comentariu:

Trimiteți un comentariu