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".

Enum

Agora, dentro dessa classe, criarei uma Enum chamada "PontosAcertos", que definirá a pontuação referente a cada objeto do jogo.

Enum

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:

Enum

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:

Enum

Vejamos a saída agora:

Enum

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:

Enum

Vejam a saída desse comando com o multiplicador:

Enum

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:

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:

Enum

Agora vejamos essa saída:

Enum

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:

Enum

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.

  • Gabinetes

  • Placas-Mãe

  • Processadores

  • Memória

  • Fontes

  • Drives Ópticos

  • Discos Rígidos

  • SSD

  • Placas de Som

  • Placas de Vídeo

Você Sabia?

A empresa Universal City Studios, detentora dos direitos autorais do King Kong, processou a Nintendo logo após o lançamento de Donkey Kong, pois segundo ela, o game violava os seus direitos. Ela venceu o processo e recebeu da Nintendo uma indenização de quase 2 milhões de dólares.


As primeiras máquinas de fliperama do mundo a utilizarem moedas, chamadas de Galaxy Game, custavam mais de 20 mil dólares para serem produzidas. Saiba mais sobre elas aqui.


O título Space Invaders, lançado em 1980, fez tanto sucesso em todo o mundo que as pessoas compravam o console Atari apenas para poderem jogá-lo em casa. Saiba mais sobre este incrível título clicando aqui.


Desde o seu lançamento, em 1985, o fantástico jogo Tetris vende pelo menos 70 milhões de unidades por ano em todo o mundo! Os dados são oficiais e fornecidos pela THQ, uma das distribuidoras do título.


Em 1949 a revista Popular Mechanics fez uma previsão para o futuro, dizendo: "Um dia os computadores pesarão menos do que 1,5 tonelada". E pensar que temos smartphones capazes de realizar milhões de vezes mais operações do que os computadores daquela época.


O título Asteroids, do Atari, possui recorde de pontuação há 30 anos. Em 1982 um americano chamado Scott Safran atingiu a marca de 41.336.440. Atualmente ele faz parte de um minúsculo grupo de jogadores que conseguiram manter seus recordes por mais de 30 anos.


Considerando todas as adaptações de jogos de videogame para o cinema, a mais bem sucedida foi Lara Croft: Tomb Raider, lançado em 2001 e que faturou 274 milhões de dólares. Ele foi dirigido por Simon West e estrelado pela bela Angelina Jolie.


O famoso título Final Fantasy, da Square Enix, tem este nome exatamente porque se tratava da última esperança da empresa, que estava à beira da falência quando o lançou. Clique aqui e conheça detalhes dessa história.


A primeira versão do clássico Mega Man, para Nintendo 8 bits, tem seu recorde de pontos estabelecido em 03/11/2006, por David Archey, que cravou 2.396.700 pontos, terminando o jogo.


O Playstation só nasceu porque uma parceria entre Sony e Nintendo, para desenvolver uma unidade de CD para o Super Nintendo, fracassou. Clique aqui e saiba mais.