Risipa de key_press | Programare

Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple

Risipa de key_press | Programare - Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple

Pe scurt despre operatori in .Net (exemple in c#)

     Un operator este un simbol care indica o actiune. Operandul este valoarea asupra careia se executa operatia. Operatorii alaturi de operanzi formeaza o expresie.

Clasificarea operatorilor

Operatorii sunt impartiti 3 categorii.

Operatori unari – actioneaza asupra unui singur operand.

Operatori binari – actioneaza intre doi operanzi.

Operatori ternari – actioneaza asupra a trei operanzi. Exista doar unul de acest tip, operatorul conditional.

Operatorii aritmetici

    In C#, exista urmatorii operatori aritmetici :

Operator

Semnificatie

+ Adunare ( si plus unar )
Scadere ( si minus unar )
* Inmultire
/ Impartire
% Impartire Modulo ( rest )
++ Incrementare
Decrementare

Exemplu :

     int numar = 5;
     int numar2 = 13;
           
     //Adunare
     Console.WriteLine(numar + numar2);
     //Scadere
     Console.WriteLine(numar - numar2);
     //Inmultire
     Console.WriteLine(numar * numar2);
     //Impartire
     //restul este trunchiat
     Console.WriteLine(numar2 / numar);
     //conversie la tipul double, restul nu este trunchiat
     Console.WriteLine((double)numar2 / numar);

     //Impartire modulo
     //returneaza restul impartirii
     Console.WriteLine(numar2 % numar);

Exemplu incrementare :

     //incrementare, cresterea cu o unitate a valorii
     Console.WriteLine("INCREMENTARE PREFIXATA");
     Console.WriteLine(++numar);
     //sau folosind expresia x = x+1
     numar2 = numar2 + 1;
     Console.WriteLine(numar2);
     Console.WriteLine("INCREMENTARE POSTFIXATA");
     //operatia se va efectua inainte de a calcula valoarea operandului 
     Console.WriteLine(numar++);
     Console.WriteLine(numar2++);

Exemplu decrementare

     //decrementare, scaderea cu o unitate a valorii
     Console.WriteLine("DECREMENTARE PREFIXATA");
     Console.WriteLine(--numar);
     //sau folosind expresia x = x-1
     numar2 = numar2 - 1;
     Console.WriteLine(numar2);

     Console.WriteLine("DECREMENTARE POSTFIXATA");
     Console.WriteLine(numar--);
     Console.WriteLine(numar2--);

Operatorul "+" este folosit la concateanarea stringurilor :

     Console.WriteLine("5"+"5");

Operatorii relationali

    Operatorii relationali se refera la relatiile de ordine care pot exista intre doua valori. Deoarece acesti operatori produc rezultate de tip adevarat sau fals, sunt folositi des cu operatorii logici.

Operator

Semnificatie

== egal cu
!= diferit de
< mai mic
> mai mare
<= mai mic sau egal
>= mai mare sau egal

Exemplu

            //obiecte diferite
            object a = 1;
            object b = 1;

            Console.WriteLine(a == b);
           
            int numar1 = 1;
            int numar2 = 1;
            Console.WriteLine(numar1 != numar2);

Operatorii logici

    Pentru operatorii logici, operanzii trebuie sa fie de tipul bool, rezultatul fiind tot de acest tip.

Operator

Semnificatie

! negatie logica
&& SI logic
|| SAU logic

    Intr-o expresie logica ce are in componenta operatorul &&, daca primul operand are valoare false, rezultatul va fi false, indiferent de valoarea celui de-al doilea operand, iar expresia nu va mai fi evaluata.

Exemplu:

            //Operatorul &&
            Console.WriteLine(false && false);
            Console.WriteLine(false && true);
            Console.WriteLine(true && false);
            Console.WriteLine(true && true);

    Intr-o expresie logica ce are in componenta operatorul ||, daca primul operator are valoare true, rezultatul va fi true, indiferent de valoarea celui de-al doilea operand, iar expresia nu va mai fi evaluata.

Exemplu

           //Operatorul ||
            Console.WriteLine(true || false);
            Console.WriteLine(false || true);
            Console.WriteLine(false || false);
            Console.WriteLine(true || true);

Operatorul de atribuire

    Operatorul de atribuire  “=” se foloseste intr-o constructie de forma variabila = expresie. Dupa evaluarea expresiei, rezultatul va fi atribuit variabilei. Pentru atribuire se mai folosesc si operatorii +=, –=, *=, /=, %=.

Exemplu :

           int a = 5;
            Console.WriteLine(a += 5);
            //echivalent 
            Console.WriteLine(a = a + 5);

Operatorul conditional

    Este de forma : expresie1? expresie2: expresie3 .

Daca expresie1 este adevarata, atunci va fi returnata valoarea lui expresie2. Daca expresie1 este falsa, atunci va fi returnata valoarea lui expresie3.

Exemplu :

     int x = 6;
     int y = 10;
     int z = 67;

     //6<10 este true, returneaza valoarea lui y
     Console.WriteLine(x < y ? y : z);

In C# sunt foarte multi operatori iar in cazul in care o expresie nu are paranteze, operatiile se executa conform prioritatii operatorilor.  Lista poate fi consultata aici.        

Supraincarcarea operatorilor

    Prin supraincarea operatorilor se redefineste semnificatia unui operator in contextul dat de o anumita clasa creata. Prin supraincarea unui operator, se extinde aria de utilizare a acestuia la clasa creata. Efectele operatorului pot diferi de la o clasa la alta.

    Supraincarcarea operatorilor este strans legata de supraincarcarea metodelor.  Desi ajuta la sporirea expresivitatii codului, supraincarcarea operatorilor poate duce si la crearea confuziilor.

Category: Uncategorized

Your email address will not be published. Required fields are marked *

*