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 |
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 |
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
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. |