Operadores (guia de programação translation from VPE for Csharp)

Em C#, um de operador é um termo ou um símbolo que leva um ou mais expressões ou operandos, como entrada e retorna um valor.Operadores que levam um operando, como o operador de incremento (++) ou new, são chamados como unário operadores.Operadores que levam dois operandos, como operadores aritméticos (+,-,*,/) são chamados como operadores de binários .Um operador, o operador condicional (?:), tem três operandos e é o único operador terciário em C#.

A instrução C# a seguir contém um operador unário única e um Simples operando.O operador de incremento, ++, modifica o valor do operando y:

y++;

A instrução C# a seguir contém dois operadores binários, cada um com dois operandos.O operador de atribuição, =, tem o número inteiro y e a expressão 2 + 3 como operandos.A expressão 2 + 3 próprio contém o operador de adição e tem o inteiro valores 2 e 3 como operandos:

y = 2 + 3;

Um operando pode ser uma expressão válida de qualquer tamanho, e pode ser composto de qualquer número de outras operações.Quande uma expressão é avaliada, o compilader primeiro avalia Tude operandes da esquerda para a Direito.Depois que Tudo operandos são avaliados, os operadores são avaliados em uma ordem específica conhecida como de precedência de operador .A tabela a seguir divide os operadores em categorias com base no tipo de operação que eles executam.As categorias estão listadas na ordem de precedência.

Operadores principais

Expression

Descrição

x. y

Acessar de membro

f(x)

Invocação de método e o delegate

a[x]

Acessar a matriz e indexador

x++

Post-Increment

x--

Post-Decrement

Novo T(...)

A criação de objeto e o delegate

new T(...){...}

Criação do objeto com inicializador.See Objeto e coleção inicializadores (guia de programação translation from VPE for Csharp).

new {...}

Inicializador de objeto anônimos.See Tipos anônimo (guia de programação translation from VPE for Csharp).

new T[...]

Criação de matriz.See Matrizes (Guia de programação do C#).

typeof (T)

Obter objeto Sistema.tipo T

Marcado (x)

Avaliar a expressão em Marcado contexto

Desmarcado (x)

Avaliar a expressão em contexto desmarcado

De padrão de (T)

Obter valor padrão do tipo T

{} De de delegate

Anônimo Função (método anônimo)

Operadores unários

Expression

Descrição

+x

Identidade

-x

Negação

!x

Negação lógica

~x

Negação bit a bit

++x

Pre-Increment

--x

Pre-Decrement

(T) x

Converter explicitamente x para o tipo T

Operadores multiplicative

Expression

Descrição

*

  Multiplicação

/

  Divisão

%

Restante

Operadores aditivas

Expression

Descrição

x + y

Adição, concatenação de Cadeia de Caracteres, a combinação de delegate

x - y

Subtração, remoção de delegate

Operadores de Shift

Expression

Descrição

x < < y

SHIFT esquerda

x > > y

Shift Direito

Relacional e tipo operadores

Expression

Descrição

x < y

  Menor que

x > y

  Maior que

x < = y

Menos ou igual

x > = y

Maior que ou igual

x é de T

Retorna Verdadeiro se x for um T, false caso contrário,

x como T

Retorno x digitada como T ou nulo se x não for um T

Operadores de igualdade

Expression

Descrição

x == y

Igual a

x != y

  Não igual

Atribuição e operadores de anônimos

Expression

Descrição

=

Atribuição

x op = y

Composto de atribuição, oferece suporte a esses operadores: +=, -=, *=, /=, %=, &=, |=, !=, <<=, >>=

(T x) = > y

Função anônima (expressão lambda)

Operadores lógicos, condicionais e nulos

Category (Categoria)

Expression

Descrição

  E lógico

x e y

Inteiro bit a bit E, Booleano E lógico

XOR lógico

x ^ y

Inteiro XOR bit a bit, XOR lógico booleano

  OU lógico

x | y

Inteiro bit a bit ou booleano ou lógico

Condicional E

x e y

Avalia y somente se x for verdadeiro

OU condicional

x || y

Avalia y somente se x for falsa

Coalescing nulo

X ?? y

Avaliado como y se x for nulo, a x caso contrário,

Condicional

x ?: y: z

Avaliado como y se x é Verdadeiro, z se x for falsa

Quando dois operadores que tenham a mesma precedência estão presentes em uma expressão, eles são avaliados com base em associativity.Operadores de associativa esquerda são avaliadas em ordem da esquerda para a Direito.Por exemplo, x * y / z é avaliada como (x * y) / z.Operadores de associativa Direito são avaliadas na ordem da Direito para a esquerda.Os operadores de atribuição e o operador de terceiro nível (?:) são associativa devidDireito.Tudo outros operadores binários são Esquerda associativa.

Parênteses podem ser usados para incluir uma expressão e forçar dessa expressão a ser avaliada antes de outros.Por exemplo, 2 + 3 * 2 faria normalmente se tornam 8.Isso ocorre porque multiplicative operadores têm precedência sobre operadores aditivas.Gravando a expressão como resultados de (2 + 3) * 2 10, pois indica para o compilador C# que o operador de adição (+) deve ser avaliado antes o operador de multiplicação (*).

Você pode alterar o comportamento de operadores para Personalizar classes e estruturas.Esse processo é conhecido como operador de sobrecarga.For more information, see Operadores sobrecarregável (guia de programação translation from VPE for Csharp).

Seções relacionadas

Para obter mais informações, consulte Operador de palavras-chave (translation from VPE for Csharp Reference) e Operadores C#.

Consulte também

Conceitos

Guia de Programação C#

Referência

Instruções, expressões, e operadores (guia de programação C#)

Date

History

Motivo

Julho de 2008

Removido instrução errada sobre saída indefinida.

Aprimoramento de informações.