Operadores de C#
C# fornece um grande conjunto de operadores, que são os símbolos que especificam que operações para executar em uma expressão.Operações com tipos integrais como ==, !=, <, >, <=, >=, binary +, binary -, ^, &|, ~, ++, --, e sizeof() geralmente são permitidos em enumerações.Além de isso, vários operadores podem ser sobrecarregado pelo usuário, para alterar seu significado quando aplicado a um tipo definido pelo usuário.
A tabela a seguir lista os operadores C# agrupados em ordem de precedência.Os operadores dentro de cada grupo têm precedência igual.
Categoria de operador |
Operadores |
---|---|
Primária |
|
Unário |
|
multiplicativo |
|
aditivo |
|
Shift |
|
Testando relacionais e de tipo |
|
Igualdade |
|
A lógica AND |
|
XOR lógico |
|
OU lógico |
|
Condicional) |
|
OPERADOR condicional |
|
NULL-coalescência |
|
Condicional |
|
Atribuição e expressão lambda |
estouro aritmético
Os operadores aritméticos (+, -, *, /) podem gerar os resultados que estão fora do intervalo de valores possíveis para o tipo numérico empacotado.Você deve se referir a seção em um operador específico para detalhes, mas geralmente:
Overflow aritmética de inteiros gera OverflowException ou rejeita os bits significativos de resultado.Divisão por zero sempre lança DivideByZeroException.
Overflow aritmética de ponto flutuante ou divisão por zero nunca lança uma exceção, porque os tipos de ponto flutuante são baseados em IEEE e 754 para que têm previsão para representar a infinito e o NaN (não um número).
overflow aritmética dedecimal sempre lança OverflowException.Divisão por zero decimal sempre lança DivideByZeroException.
Quando integer overflow ocorre, o que acontece depende do contexto de execução, que pode ser marcada ou desmarcada.Em um contexto verificado, OverflowException é lançada.Em um contexto não-verificada, os bits significativos o resultado são descartados e a execução é retomada.Assim, C# oferece a você a opção de tratamento ou estouro ignorar.
Além dos operadores aritméticos, o integral- tipo para conversões de tipo integral- pode causar overflow, por exemplo, converter long a int, e execução é marcada ou desmarcada sujeita.Em o entanto, os operadores bit a bit e os operadores SHIFT nunca geram overflow.
Consulte também
Referência
Operadores que pode ser sobrecarregados (guia de programação do C#)