sexta-feira, 9 de outubro de 2009

Ótimo Blog de Sharepoint


Olá amigos, tudo em paz?

Acessem o blog sharepoint-br do meu amigo Diego Humel, com informações precisas sobre Sharepoint e afins, tudo em português.
Bom para quem já conhece ou para quem quer conhecer, inclusive com posts sobre a evolução do Sharepoint e aplicações deste.

[]'s

quinta-feira, 1 de outubro de 2009

C# - Yield return

Olá, amigos! Hoje falarei sobre uma funcionalidade interessante do C#.

Existem algumas funcionalidades simples que poupam um trabalhão mas nem sempre são usadas. Como uma dessas funcionalidades, podemos considerar o iterador "yield".

Esta funcionalidade está disponível desde a versão 2.0 do C# mas acaba passando despercebida pela maioria dos desenvolvedores.
Basicamente, o operador "yield" é usado para iterar através de objetos retornados por um método. Ele cria um mecanismo de estado via IL para que seja possível criar métodos que conservem o seu estado sem ser necessário manter o estado via código.

Como exemplo simples, vamos usar um exemplo simples que retorna os itens pares em uma coleção:

public IEnumerable RetornaPares(int[] numeros)
{
    List<int> pares = new List<int>();
    foreach (int n in numeros)
    {
        if (n % 2 == 0)
            pares.Add(n);
    }
    return pares;
}

Normalmente usamos um list para armazenar os itens a serem retornados.
Usando yield return ficaria assim:

public IEnumerable PegarPares(int[] numeros)
{
    foreach (int n in numeros)
    {
        if (n % 2 == 0)
            yield return n;
    }
}

Veja que o yield faz o trabalho para você e retorna o resultado correto, porém iterando pelos itens sem a intervenção do desenvolvedor, não sendo necessário criar nenhuma lista para o armazenamento.

Até a próxima!

Referências:

http://www.c-sharpcorner.com/UploadFile/rmcochran/yieldreturn04022006113850AM/yieldreturn.aspx

http://www.magodigital.info/post/Operador-Yield-do-C.aspx