O Enum é um conceito bastante útil para algumas áreas de programação. Na verdade trata-se da abreviação de Enumeração, que na prática nada mais é do que um grupo de constantes. A grande vantagem das Enums é que elas podem expressar números através de nomes. Vou colocar um exemplo que vai deixar bem claro sua utilidade. Vamos imaginar o cenário de um pequeno jogo de batalha-naval, que tenha, para cada objeto do jogo, uma determinada pontuação. Para dar início ao exemplo, criarei um novo projeto no Visual C# Express e dentro dele uma classe chamada "Pontos".
Agora, dentro dessa classe, criarei uma Enum chamada "PontosAcertos", que definirá a pontuação referente a cada objeto do jogo.
Notem que eu atribui alguns valores para cada objeto do jogo.
Agora imaginem que num outro momento do código você queira utilizar, exibindo na tela, o valor atribuído a um
Cruzador. Para muitos a solução já deve estar mentalmente pronta, que seria:
Pontos.PontosAcertos.Cruzadores
Essa resposta faz sentido, já que acessa primeiro a Classe, depois a Enum e em seguida o valor do item desejado.
No entanto, vamos tentar exibi-la no Console do C# com o seguinte comando:
Console.WriteLine(Pontos.PontosAcertos.Cruzadores);
Vejamos o que acontece na saída:
Não era bem isso que queríamos. O que aconteceu aqui foi o seguinte: todo item de um Enum é naturalmente uma String associada a um valor e, quando não deixamos explícito que queremos exibir ou utilizar o valor, o retorno será sempre a String em si. A solução para isso é muito simples e envolve o conceito de Cast, visto no tópico anterior, vejam:
Vejamos a saída agora:
Percebam que agora foi retornado o valor associado a esse item da Enum e não mais o seu nome. O interessante é que se ao longo desse jogo fosse necessário calcular a pontuação referente ao acerto de vários Cruzadores ao mesmo tempo, nós poderíamos fazer o seguinte código:
Vejam a saída desse comando com o multiplicador:
Os enumeradores permitem grande ganho de tempo no desenvolvimento de aplicações. Imagine que você decida, no final do
desenvolvimento, alterar o valor da pontuação dos Cruzadores, de 5 para 10 pontos. Se não tivesse feito um Enum, seria
necessário procurar em todos os locais do seu código que fizessem uso dessa pontuação e substituir o 5 pelo 10.
Utilizando o Enum basta trocar em um único local e o código já estará atualizado.
Bem, os mais atentos e que já passaram pelo minicurso de Lógica podem estar se perguntando qual seria a diferença
entre o Enum e as Constantes, afinal de contas eles parecem ter o mesmo resultado prático. Se você pensou dessa forma,
parabéns, pois até aqui realmente eles não apresentam nenhuma diferença no resultado e isso significa que você está
atento, no entanto o Enum é, de fato, uma Enumeração, uma
sequência. Se não especificarmos nenhum valor aos seus itens, isso será feito automaticamente, como se
fossem índices de um vetor. Vejam na prática o que acontece quando eu removo todos os valores associados aos
itens do Enum:
Para o código de exibição, fiz uma alteração para que sejam exibidos todos os itens da Enum, deixando-o da seguinte forma:
Agora vejamos essa saída:
Percebam agora que ele atribuiu valores a cada item, de acordo com a ordem em que eles aparecem
na Enum. E, assim como os índices de um vetor, o primeiro tem valor zero.
Agora ficou claro o que diferencia uma Enum de simples Constantes.
Para encerrar o assunto Enum, vale destacar que por padrão os valores associados são do tipo int, mas também é possível usar os tipos byte, short e long
através da seguinte sintaxe:
Vale destacar que uma Enum não aceita os tipos de dados Double, Float e Char.
Bem, é isso. Essa é a Enum. No próximo tópico falarei sobre as listas.
HARDWARE
Entendendo o seu computador
O que há dentro do meu computador?
Existem alguns componentes fundamentais presentes dentro do seu computador e é muito importante que você conheça um pouco sobre eles, seja para argumentar com algum vendedor durante a compra de um novo PC ou para identificar alguma atitude desleal de algum técnico que esteja te passando um orçamento para reparo. Na seção Raio-X aqui do Contém Bits você pode conhecer e entender mais detalhadamente sobre cada componente, ou também pode clicar abaixo no componente que deseja, para conhecê-lo melhor.
Você Sabia?
Nintendo Wii
Nos primeiros oito dias após o lançamento do console Nintendo Wii foram vendidas 600 mil unidades. Isso equivale a quase um por segundo e estes incríveis números são referentes às vendas apenas nos EUA!
Duck Hunt
Ao completar o nível 99 do jogo Duck Hunt, para Nintendo, o jogo retorna ao primeiro nível, mas um bug impede que se acerte os patos neste recomeço. Este é um exemplo do que é chamado no mundo dos games de "Kill Screen".
Cuidados com o notebook
Utilizar seu notebook em camas, sofás ou qualquer superfície macia pode obstruir as entradas e saídas de ar, elevando a temperatura e provocando danos a diversos componentes. Utilize-o sempre sobre uma superfície rígida. Saiba mais aqui.
Recorde de patentes
A IBM detém o recorde de patentes em um único ano, atingindo a marca de 4186 registros no ano de 2008. Clique aqui e saiba mais sobre esta gigante do mundo da tecnologia.
River Raid
O épico jogo River Raid, do Atari, foi desenhado e boa parte de sua programação foi feita por uma mulher: Carol Shaw, uma excelente programadora e funcionária da Activision em 1982. Saiba mais sobre a história deste incrível jogo, aqui.
Senhas
Digitar senhas em computadores de uso coletivo é extremamente perigoso, pois além de softwares de monitoramento, existem dispositivos de hardware que podem capturar suas senhas. Evite ao máximo acessar sites de bancos a partir destes computadores. Veja mais aqui.
Ábaco
O ábaco é o dispositivo de cálculo mais antigo construído e conhecido pelo homem. Suas formas mais primitivas datam de 400 a.C. e eles foram encontrados na China e na Babilônia. Para saber mais sobre a história dos computadores, clique aqui.
Nintendo Entertainment System
O console Nintendo Entertainment System (NES), da Nintendo, detém o recorde de videogame mais clonado em todo o mundo. Já foram catalogados mais de 300 aparelhos diferentes capazes de reproduzir seus jogos! Saiba mais sobre ele aqui.
Space Invaders
A partida mais longa do clássico Space Invaders durou incríveis 38 horas e 32 minutos e esta façanha foi conseguida por um jogador de apenas 12 anos! O jogo, claro, podia ser pausado para alimentação e descanso, mas ainda assim o recorde, estabelecido no dia 02/09/1980, ainda não foi quebrado. Saiba mais.
Inteligência artificial
O primeiro jogo a fazer uso de uma Inteligência Artificial foi o Mouse in the Maze, criado em 1955, na União Soviética. Você pode saber mais sobre ele clicando aqui.