C# Operators
C# fornece um grande conjunto de operadores são símbolos que especificam quais operações realizar em uma expressão. Operations on integral types such as ==, !=, <, >, <=, >=, binary +, binary -, ^, &, |, ~, ++, --, e sizeof() geralmente são permitidos em enumerações. Além disso, muitos operadores podem ser sobrecarregado pelo usuário, alterando assim seu significado quando aplicado a um tipo definido pelo usuário.
A tabela a seguir lista os operadores C# agrupados na ordem de precedência. Operadores de cada grupo têm precedência parecida.
Categoria de operadores |
Operadores |
---|---|
Principal |
|
Unário |
|
Multiplicativos |
|
Aditivo |
|
SHIFT |
|
Relacional e o tipo de teste |
|
Igualdade |
|
E lógico |
|
XOR lógico |
|
OR lógico |
|
Condicional E |
|
OU condicional |
|
Concentração de NULL |
|
Condicional |
|
Expressão lambda e de atribuição |
Estouro aritmético
Os operadores aritméticos (+, –, *, /) pode produzir resultados que estão fora do intervalo de valores possíveis para o tipo numérico envolvido. Consulte a seção de um operador específico para obter detalhes, mas em geral:
Estouro de inteiro aritmético ambos lança um OverflowException ou descarta os bits mais significativos do resultado. Divisão por zero sempre a lança um DivideByZeroException.
Divisão por zero ou estouro aritmético de ponto flutuante nunca lança uma exceção, pois os tipos de ponto flutuante são baseados em IEEE 754 e assim por ter provisões para representar o infinito e NaN (e não um número).
Decimal estouro aritmético sempre lança um OverflowException. Decimal divisão por zero sempre a lança um DivideByZeroException.
Quando ocorre a estouro de inteiros, o que acontece depende do contexto de execução, que pode ser marcado ou desmarcado. Em um contexto marcada, um OverflowException é lançada. Em um contexto desmarcado, os bits mais significativos do resultado são descartados e continua a execução. Assim, C# oferece a opção de tratamento ou ignorando estouro.
Além de para os operadores aritméticos, conversões de tipo integral para integral-tipo podem causar o estouro, por exemplo, Projetando um longo para um inte estão sujeitos a execução marcada ou desmarcada. No entanto, os operadores bit a bit e shift operators nunca causam estouro.
Consulte também
Referência
Operadores sobrecarregável (guia de programação de C#)