Archive for the ‘C#’ Category

Enum em C#

quinta-feira, dezembro 17th, 2009

Olá a todos novamente. O tópico de hoje tratará de enums, uma estrutura herdada do C e presente em várias linguagens de programação.

A utilidade dos enums está em organizar tipos de dados sequenciais. Dias da semana são um ótimo exemplo. Os enums servem para enumerar estados, também (conectado, desconectado, em espera, por exemplo).
Observe abaixo como declarar um enum com os dias da semana:

enum Dias { Dom, Seg, Ter, Qua, Qui, Sex, Sab };

Nada de muito fantástico, não é? Há um detalhe aqui. O enum Dom começa com 0 – é o default do C#. Seg seria 1, Ter 2, e assim por diante. Mas adivinhe se podemos mudar essa lógica? Isso mesmo, podemos. E é simples. Podemos fazer:

enum Dias { Dom=1, Seg, Ter, Qua, Qui, Sex, Sab };

Isso faria com que Seg fosse 2, Ter 3, e assim por diante.

A classe Enum (com E maiúsculo) fornece alguns métodos interessantes. Observe o código abaixo:

using System;
using System.Collections.Generic;

namespace EnumTest
{

class Program
{
enum Dias { Dom=1, Seg, Ter, Qua, Qui, Sex, Sab };
static void Main(string[] args)
{
foreach (string dia in Enum.GetNames(typeof(Dias)))
{
Console.WriteLine(dia);
}
foreach (int i in Enum.GetValues(typeof(Dias)))
{
Console.WriteLine(i);
}
Console.ReadLine();
}
}
}

Com isso, listamos o nome e os valores de todos os itens da nossa enum dos dias da semana.

Há também a possibilidade de mudar o tipo base do enum, bem como criar flags com essa estrutura. Isso fica como dever de casa para a criançada.

Obrigado, e espero que tenham gostado. Até a próxima!

Um pouco sobre LINQ

quinta-feira, dezembro 3rd, 2009

Olá a todos novamente. Esse post tratará sobre LINQ (que quer dizer Language Integrated Query, ou Linguagem de Consulta Integrada). Você pode usar os nossos conhecidos amigos “select”, “where” e “from” do SQL nativamente no código C# ou VB. Essa poderosa ferramenta permite que você trate objetos da mesma maneira como trataria resultados de uma consulta ao banco.

Um exemplo básico de código:

using System;
using System.Linq;
using System.Collections.Generic;

class LinqTeste {
static void Main() {
string[] nomes = { “Bruno”, “Sérgio”, “Giordano”,
“Eduardo”, “Robson”, “Pablo”,
“Lino”, “Lyanderson” };

IEnumerable query = from s in nomes
where s.Length > 4
orderby s
select s.ToUpper();

foreach (string nome in query)
Console.WriteLine(nome);
}
}

Esse código imprimirá na console todos os nomes cujo tamanho seja maior que 4 (excluindo, portanto, apenas nosso amigo Lino), ordenando-os por ordem alfabética.

Na verdade, a grande sacada do LINQ reside em que podemos abstrair se estamos lidando com um banco ou com objetos – a única diferença é a origem dos dados, não como os tratamos. No caso do exemplo, usamos um array de strings como nossa geratriz de dados, mas isso poderia muito bem ser gerado a partir de uma consulta a um banco.

Além disso, a maioria dos desenvolvedores que já trabalharam com SQL, independente da linguagem em que desenvolvessem, conhecessem os comandos básicos do LINQ. Isso torna mais fácil entender o código, mesmo pra quem não conhece muito bem a sintaxe do C# ou do VB.net.

Espero que tenham gostado desse breve esclarecimento sobre LINQ. Até a próxima!