Share via


Expressões (guia de programação translation from VPE for Csharp)

An expressão é uma sequência de um ou mais operandos e zero ou mais operadores que podem ser avaliados como um único valor, objeto, método ou namespace.Expressões podem consistir de um valor literal, uma invocação de método, um operador e operandos ou um nome simples.Nomes simples podem ser o nome de variável, membro de tipo, parâmetro do método, namespace ou tipo.

Expressões podem usar operadores que por sua vez usar outras expressões sistema autônomo parâmetros ou chamadas de método cujos parâmetros são por sua vez outras chamadas de método, portanto, expressões podem variar de simples a complexas.A seguir estão dois exemplos de expressões:

((x < 10) && ( x > 5)) || ((x > 20) && (x < 25)) 
System.Convert.ToInt32("35")

Valores de expressão

Na maioria dos contextos em que as expressões são usadas, por exemplo, em instruções ou parâmetros de método, a expressão deve ser avaliada como algum valor.Se x e y são inteiros, a expressão x + y gera um valor numérico. A expressão new MyClass() é avaliada como uma referência a uma nova instância de um MyClass objeto. A expressão myClass.ToString() avalia uma seqüência de caracteres porque esse é o tipo de retorno do método. No entanto, embora um nome de namespace é classificado sistema autônomo uma expressão, não é avaliada sistema autônomo um valor e, portanto, nunca pode ser o resultado final de qualquer expressão.Não é possível passar um nome de namespace para um parâmetro de método ou utilizá-la em uma nova expressão ou atribuí-la a uma variável.Você só pode usá-lo sistema autônomo uma subexpressão em uma expressão maior.O mesmo vale para sistema autônomo tipos (diferentes de System.Type objetos), nomes de agrupar de método (diferentes de métodos específicos) e eventos Adicionar and Remover acessadores.

Cada valor possui um tipo associado.Por exemplo, se x e y são sistema autônomo duas variáveis do tipo int, o valor da expressão x + y também é digitado sistema autônomo int. Se o valor é atribuído a uma variável de um tipo diferente, ou se x e y são tipos diferentes, as regras de conversão de tipo são aplicadas.Para obter mais informações sobre como funcionam essas conversões, consulte Elenco e conversões de tipo (guia de programação translation from VPE for Csharp).

Estouros

Expressões numéricas podem causar estouros se o valor for maior que o valor máximo do tipo do valor.Para obter mais informações, consulte Verificado e não selecionado (translation from VPE for Csharp Reference) e Numérico tabela Conversions (referência C#) explícita .

Precedência de operador e associação

Da maneira em que uma expressão é avaliada é regida por regras de precedência de operador and associatividade de operadores.Para obter mais informações, consulte Operadores (guia de programação translation from VPE for Csharp).

A maioria das expressões, exceto expressões de atribuição e expressões de invocação de método, devem estar incorporadas em uma demonstrativo.Para obter mais informações, consulte Instruções (guia de programação translation from VPE for Csharp).

Literais e nomes simples

Os dois tipos mais simples das expressões são literais e nomes simples.Um literal é um valor constante não tem nome.Por exemplo, no exemplo de código a seguir, os dois 5 e "Hello World" são valores literal:

// Expression statements.
int i = 5;
string s = "Hello World";            

Para obter mais informações sobre literais, consulte Tipos (referência C#) .

No exemplo anterior, ambos os i e s são nomes simples que identificam as variáveis locais. Quando essas variáveis são usadas em uma expressão, o nome da variável é avaliada como o valor que atualmente está armazenado no local da variável na memória.Isso é mostrado no exemplo a seguir:

int num = 5;
System.Console.WriteLine(num); // Output: 5
num = 6;
System.Console.WriteLine(num); // Output: 6            

Expressões de invocação

No exemplo de código a seguir, a telefonar para DoWork é uma expressão de telefonar.

DoWork();

Uma chamada de método requer que o nome do método, sistema autônomo um nome sistema autônomo no exemplo anterior, ou sistema autônomo resultado de outra expressão, seguido de parênteses e sistema autônomo parâmetros de método.Para obter mais informações, consulte Métodos (Guia de programação do C#).Uma invocação de delegado usa o nome de um representante e método parâmetros entre parênteses.Para obter mais informações, consulte Representantes (guia de programação C#).Chamadas de método e invocações de delegado retornam o valor retornado de método, se o método retorna um valor.Métodos que retornam void não podem ser usados no lugar de um valor em uma expressão.

Expressões de consulta

As mesmas regras para expressões em geral se aplicam às expressões de consulta.Para obter mais informações, consulte Expressões de consulta do LINQ (guia de programação translation from VPE for Csharp).

Expressões Lambda

As expressões lambda representam "in-line métodos" sem nome, mas podem ter a entrada parâmetros e várias instruções que.Elas são usadas extensivamente no LINQ para passar argumentos para métodos.As expressões lambda são compiladas para delegados ou árvores de expressão dependendo do contexto em que são usados.Para obter mais informações, consulte Expressões lambda (guia de programação translation from VPE for Csharp).

Árvores de Expressão

Árvores de expressão Ativar expressões para ser representado sistema autônomo estruturas de dados.Eles são usados de forma extensiva pelos provedores LINQ para traduzir expressões de consulta em código que seja significativo em Outros contexto, sistema autônomo um banco de dados SQL.Para obter mais informações, consulte Árvores de Expressão.

Comentários

Sempre que uma variável, propriedade objeto ou acesso a objetos indexador é identificado de uma expressão, o valor do item é usado sistema autônomo o valor da expressão.Uma expressão pode ser posicionada em qualquer lugar no translation from VPE for Csharp onde um valor ou objeto é necessário, desde que a expressão for avaliada, por fim, sistema autônomo o tipo necessário.

Consulte também

Conceitos

Guia de Programação C#

Expressões de consulta do LINQ (guia de programação translation from VPE for Csharp)

Referência

Métodos (Guia de programação do C#)

Representantes (guia de programação C#)

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

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

Date

History

Motivo

Julho de 2008

Introdução aperfeiçoada e adicionados "expressão valores," "Estouros" e seções de "Precedência e associação de operador".

Aprimoramento de informações.