C# - Operadores
Um operador é um símbolo que diz ao compilador para realizar manipulações matemáticas ou lógicas específicas. C# tem um rico conjunto de operadores embutidos e fornece o seguinte tipo de operadores -
- Operadores aritméticos
- Operadores Relacionais
- Operadores lógicos
- Operadores bit a bit
- Operadores de atribuição
- Operadores diversos
Este tutorial explica os operadores aritméticos, relacionais, lógicos, bit a bit, de atribuição e outros operadores um por um.
Operadores aritméticos
A tabela a seguir mostra todos os operadores aritméticos suportados pelo C#. Suponha a variável A contém 10 e a variável B detém 20 então -
Mostrar exemplos
Operador | Descrição | Exemplo |
---|---|---|
+ | Adiciona dois operandos | A + B =30 |
- | Subtrai o segundo operando do primeiro | A - B =-10 |
* | Multiplica ambos os operandos | A * B =200 |
/ | Divide numerador por denumerador | B / A =2 |
% | Operador de módulo e resto após uma divisão inteira | B % A =0 |
++ | O operador de incremento aumenta o valor inteiro em um | A++ =11 |
-- | O operador de decremento diminui o valor inteiro em um | A-- =9 |
Operadores Relacionais
A tabela a seguir mostra todos os operadores relacionais suportados pelo C#. Suponha a variável A contém 10 e a variável B detém 20, então -
Mostrar exemplos
Operador | Descrição | Exemplo |
---|---|---|
== | Verifica se os valores de dois operandos são iguais ou não, se sim então a condição se torna verdadeira. | (A ==B) não é verdade. |
!= | Verifica se os valores de dois operandos são iguais ou não, se os valores não forem iguais então a condição se torna verdadeira. | (A !=B) é verdadeiro. |
> | Verifica se o valor do operando esquerdo é maior que o valor do operando direito, se sim então a condição se torna verdadeira. | (A> B) não é verdade. |
< | Verifica se o valor do operando esquerdo é menor que o valor do operando direito, se sim então a condição se torna verdadeira. | (A |
>= | Verifica se o valor do operando esquerdo é maior ou igual ao valor do operando direito, se sim então a condição se torna verdadeira. | (A>=B) não é verdade. |
<= | Verifica se o valor do operando esquerdo é menor ou igual ao valor do operando direito, se sim então a condição se torna verdadeira. | (A <=B) é verdadeiro. |
Operadores lógicos
A tabela a seguir mostra todos os operadores lógicos suportados pelo C#. Suponha a variável A mantém o valor booleano true e a variável B mantém o valor booleano false, então −
Mostrar exemplos
Operador | Descrição | Exemplo |
---|---|---|
&& | Chamado operador AND lógico. Se ambos os operandos forem diferentes de zero, a condição se tornará verdadeira. | (A &&B) é falso. |
|| | Chamado Operador OR Lógico. Se qualquer um dos dois operandos for diferente de zero, a condição se tornará verdadeira. | (A || B) é verdadeiro. |
! | Chamado Operador NOT Lógico. Use para reverter o estado lógico de seu operando. Se uma condição for verdadeira, o operador NOT Lógico tornará falso. | !(A &&B) é verdadeiro. |
Operadores bit a bit
O operador bit a bit trabalha com bits e executa a operação bit a bit. As tabelas verdade para &, | e ^ são as seguintes −
p | q | p &q | p | q | p ^ q |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 1 |
Suponha que A =60; e B =13; então no formato binário eles são os seguintes -
A =0011 1100
B =0000 1101
-------------------
A&B =0000 1100
A|B =0011 1101
A^B =0011 0001
~A =1100 0011
Os operadores Bitwise suportados pelo C# estão listados na tabela a seguir. Suponha que a variável A tenha 60 e a variável B tenha 13, então −
Mostrar exemplos
Operador | Descrição | Exemplo |
---|---|---|
& | O operador AND binário copia um bit para o resultado se existir em ambos os operandos. | (A e B) =12, que é 0000 1100 |
| | O operador OR binário copia um bit se existir em qualquer um dos operandos. | (A | B) =61, que é 0011 1101 |
^ | O operador XOR binário copia o bit se estiver definido em um operando, mas não em ambos. | (A ^ B) =49, que é 0011 0001 |
~ | Operador de Complemento de Unidades Binárias é unário e tem o efeito de 'inverter' bits. | (~A ) =-61, que é 1100 0011 em complemento de 2 devido a um número binário assinado. |
<< | Operador de deslocamento à esquerda binário. O valor do operando esquerdo é movido para a esquerda pelo número de bits especificado pelo operando direito. | A <<2 =240, que é 1111 0000 |
>> | Operador de deslocamento à direita binário. O valor do operando esquerdo é movido para a direita pelo número de bits especificado pelo operando direito. | A>> 2 =15, que é 0000 1111 |
Operadores de Atribuição
Existem os seguintes operadores de atribuição suportados pelo C# −
Mostrar exemplos
Operador | Descrição | Exemplo |
---|---|---|
= | Operador de atribuição simples, atribui valores dos operandos do lado direito ao operando do lado esquerdo | C =A + B atribui valor de A + B em C |
+= | Adiciona o operador de atribuição AND, adiciona o operando direito ao operando esquerdo e atribui o resultado ao operando esquerdo | C +=A é equivalente a C =C + A |
-= | Subtrair o operador de atribuição AND, subtrai o operando direito do operando esquerdo e atribui o resultado ao operando esquerdo | C -=A é equivalente a C =C - A |
*= | Operador de atribuição de multiplicação AND, Multiplica o operando direito pelo operando esquerdo e atribui o resultado ao operando esquerdo | C *=A é equivalente a C =C * A |
/= | Operador de atribuição de divisão AND, Ele divide o operando esquerdo com o operando direito e atribui o resultado ao operando esquerdo | C /=A é equivalente a C =C / A |
%= | Operador de atribuição de módulo AND, leva módulo usando dois operandos e atribui o resultado ao operando esquerdo | C %=A é equivalente a C =C % A |
<<= | Deslocamento à esquerda E operador de atribuição | C <<=2 é igual a C =C <<2 |
>>= | Deslocamento à direita E operador de atribuição | C>>=2 é igual a C =C>> 2 |
&= | Operador de atribuição AND bit a bit | C &=2 é igual a C =C &2 |
^= | OR exclusivo bit a bit e operador de atribuição | C ^=2 é igual a C =C ^ 2 |
|= | OR inclusivo bit a bit e operador de atribuição | C |=2 é igual a C =C | 2 |
Operadores Diversos
Existem alguns outros operadores importantes, incluindo sizeof, typeof e ? : suportado por C#.
Mostrar exemplos
Operador | Descrição | Exemplo |
---|---|---|
sizeof() | Retorna o tamanho de um tipo de dados. | sizeof(int), retorna 4. |
typeof() | Retorna o tipo de uma classe. | typeof(StreamReader); |
& | Retorna o endereço de uma variável. | &a; retorna o endereço real da variável. |
* | Ponteiro para uma variável. | *a; cria um ponteiro chamado 'a' para uma variável. |
? : | Expressão condicional | Se a condição for verdadeira? Então valor X :Caso contrário valor Y |
é | Determina se um objeto é de um determinado tipo. | If( Ford is Car) // verifica se Ford é um objeto da classe Car. |
como | Transmitir sem gerar uma exceção se a conversão falhar. | Objeto obj =new StringReader("Olá"); StringReader r =obj como StringReader; |
Precedência do operador em C#
A precedência do operador determina o agrupamento de termos em uma expressão. Isso afeta a avaliação de uma expressão. Certos operadores têm precedência mais alta do que outros; por exemplo, o operador de multiplicação tem maior precedência do que o operador de adição.
Por exemplo x =7 + 3 * 2; aqui, x recebe 13, não 20 porque o operador * tem precedência maior que +, então a primeira avaliação ocorre para 3*2 e então 7 é adicionado a ele.
Aqui, os operadores com maior precedência aparecem na parte superior da tabela, aqueles com menor prioridade aparecem na parte inferior. Dentro de uma expressão, os operadores de precedência mais alta são avaliados primeiro.
Mostrar exemplos
Categoria | Operador | Associatividade |
---|---|---|
Postfix | () [] -> . ++ - - | Esquerda para direita |
Unário | + -! ~ ++ - - (tipo)* &sizeof | Da direita para a esquerda |
Multiplicativo | * / % | Esquerda para direita |
Aditivo | + - | Esquerda para direita |
Mudar | <<>> | Esquerda para direita |
Relacional | <<=>>= | Esquerda para direita |
Igualdade | ==!= | Esquerda para direita |
Bit a bit E | & | Esquerda para direita |
XOR bit a bit | ^ | Esquerda para direita |
OU bit a bit | | | Esquerda para direita |
E lógico | && | Esquerda para direita |
OU lógico | || | Esquerda para direita |
Condicional | ?: | Da direita para a esquerda |
Tarefa | =+=-=*=/=%=>>=<<=&=^=|= | Da direita para a esquerda |
Vírgula | , | Esquerda para direita |
Linguagem C