Início > C#, Dicas / Tips > Operador Yield em C#

Operador Yield em C#

Recentemente criando um método que retorna IEnumerable, fiz um esforço pra lembrar desse operador mas só consegui lembrar dele agora, depois de constatar sua existência no Ruby: “yield é a palavra reservada de Ruby que pega um ou mais objetos, envia para um bloco para processá-los e devolve o retorno do bloco.”.
No C# podemos utilizar o yield na seguinte situação:

Exemplo Comum de método que retorna uma Estrutura de Dados IEnumerable SEM Yield:

public static IEnumerable<int> Exemplo1(int numero)
        {
            var res = new List<int>();

            for (int i = 0; i < numero; i++)
            {
                res.Add(i);
            }

            return res;
        }

Exemplo Comum de método que retorna uma Estrutura de Dados IEnumerable COM Yield:

public static IEnumerable<int> Exemplo2(int numero)
        {
            for (int i = 0; i <= numero; i++)
                yield return i;
        }

Yield deixa o código mais limpo.
Vale a pena utilizá-lo.


Fontes:
http://blastersystems.com/blog/2009/10/o-operador-yield-c/
http://umamao.com/questions/O-que-faz-a-palavra-reservada-yield-em-Ruby/answers/4dace8c4d196cb6feb0001b0
http://unplugged.giggio.net/unplugged/post/Porque-eu-adoro-C-yield.aspx

Anúncios
Categorias:C#, Dicas / Tips Tags:, , , ,
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixar uma Anotação

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

dotnettips.wordpress.com/

Helping Programmers Since 1994

Viagem e Voo

Dicas para viagens, férias e voos nacionais e internacionais

Ivan Guimarães Meirelles

Analista Desenvolvedor

Void Podcast

Vazio e sem retorno de valor

Elemar DEV

Negócios, tecnologia e desenvolvimento

2,000 Things You Should Know About WPF

Everything a WPF Developer Needs to Know, in Bite-Sized Chunks

blog

so long

Fernando Franzini Blog

Engenharia de Software e Arquitetura Ágil

Gabriel RB.net

Blog técnico, com dicas, códigos, novidades e problemas do dia-a-dia programando.

Alexandre Valente's Blog

Experiências em tecnologia e assuntos diversos

%d blogueiros gostam disto: