Partilhar via


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

x. y

f(x)

[x]

x + +

x-

Novo

TypeOf

Marcada

desmarcada

Default(T)

delegado

->

Unário

+

-

!

~

+ + x

--x

(T) x

verdadeiro

FALSO

&

sizeof

Multiplicativos

*

/

%

Aditivo

+

-

SHIFT

<<

>>

Relacional e o tipo de teste

<

>

<=

>=

é

Como

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

=

+=

-=

*=

/=

%=

&=

|=

^=

<<=

>>=

= > Operador de lambda

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#)

C# Keywords

Conceitos

C# Programming Guide

Outros recursos

C# Reference

Visual C#