rendimento (translation from VPE for Csharp Reference)

Usado em um iterador bloco para fornecer um valor para o objeto enumerador ou para sinalizar o participante da iteração.Ele tem um dos seguintes formatos:

yield return <expression>;
yield break;

Comentários

expressão é avaliado e retornado sistema autônomo um valor para o objeto enumerador; expression deve ser implicitamente conversível no tipo de yield do iterador.

The yield demonstrativo só pode aparecer dentro de um iterator bloco pode ser usado sistema autônomo um corpo de um método, operador ou assessor. O corpo de tais métodos, operadores ou acessadores é controlado pelas seguintes restrições:

  • Blocos não seguros não são permitidos.

  • Parâmetros para o método, operador ou assessor não podem ser ref or check-out.

A yield a demonstrativo não pode aparecer em um método anônimo. Para obter mais informações, consulte Métodos anônimos (Guia de programação do C#).

Quando usado com expression, um yield return a demonstrativo não pode aparecer em um catch bloco ou em um try bloco que possui um ou mais catch cláusulas. Para obter mais informações, consulte Exceção tratamento instruções (referência C#).

Exemplo

No exemplo a seguir, a yield demonstrativo é usada dentro de um bloco iterador, que é o método Power(int number, int power). Quando o Power método é invocado, ele retorna um objeto enumerável que contém as potências de um número. Observe que o retorno digite do Power método é IEnumerable, um tipo de interface de iterador.

public class List
{
    //using System.Collections;
    public static IEnumerable Power(int number, int exponent)
    {
        int counter = 0;
        int result = 1;
        while (counter++ < exponent)
        {
            result = result * number;
            yield return result;
        }
    }

    static void Main()
    {
        // Display powers of 2 up to the exponent 8:
        foreach (int i in Power(2, 8))
        {
            Console.Write("{0} ", i);
        }
    }
}
/*
Output:
2 4 8 16 32 64 128 256 
*/

Especificação da linguagem C#

Para obter mais informações, consulte as seções a seguir no Especificação da linguagem C#:

  • 19.3 Iteradores

  • 22 Iteradores

Consulte também

Conceitos

Guia de Programação C#

Referência

foreach (translation from VPE for Csharp Reference)

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

Outros recursos

Referência C#