Minicursos - C#

Enum


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.



Algumas notícias

Xiaomi vende 52,9 milhões de celulares no segundo trimestre de 2021 e faturamento dispara

A gigante chinesa Xiaomi registrou um aumento de quase 85% no seu faturamento no segundo trimestre de 2021 em comparação ao mesmo período do ano passado. A receita divulgada pela empresa foi de 13,5 bilhões de dólares (algo em torno de 70 bilhões de reais) nos meses de abril a junho deste ano...

Ler Notícia Completa

Galaxy S9 e Galaxy S9 Plus receberão atualização de segurança este mês

A Samsung começou a liberar esta semana, para proprietários dos modelos Galaxy S9 e Galaxy S9 Plus, uma nova atualização de segurança. Por enquanto somente alguns países da Europa receberam o pacote, que deve ser dis...

Ler Notícia Completa

Novas câmeras 'debaixo da tela' da Oppo surpreendem

Para muitos, colocar uma câmera embaixo da tela de um celular era uma tarefa impensável, por conta de diversos problemas técnicos. Os primeiros testes da Oppo que se propuseram a isso geravam imagens de qualidade bastante insatisfatória, já que a captação da luz era prejudicada pela tela. A prim...

Ler Notícia Completa

As memórias DDR5 estão chegando e trarão muitas melhorias

A próxima geração de memórias RAM já possui especificações definidas e promete grande melhoria em relação às atuais DDR4. E o mais importante: mesmo com desempenho bastante superior, elas consumirão menos energia. A tensão de trabalho das memórias DDR5 será de apenas 1.1V contra os 1.2V das atu...

Ler Notícia Completa

Google Chrome consumirá menos memória RAM em breve

O navegador da gigante de buscas da Internet é, sem dúvida, um dos melhores disponíveis, mas é inegável que o consumo de memória RAM por parte dele é exagerado. Este problema já se estende por anos, mas parece que em breve ele terá uma solução. Um novo recurso do Windows 10, chamado SegmentHeap...

Ler Notícia Completa

Sites e vídeos sem propagandas? Sim, é possível através da exploração de uma falha!

Seguramente você já se deparou com sites que bloqueiam o conteúdo da página e te obrigam a assinar determinado serviço para ler o conteúdo, certo? Ou foi tentar assistir aquele vídeo e as propagandas em tela cheia não pararam de surgir. Bem, todos já nos deparamos com isso, no entanto, um bug de...

Ler Notícia Completa
Ajude o Contém Bits com um cafezinho!

Se você gostou do artigo, se ele lhe foi útil de alguma maneira e você quiser ajudar o Contém Bits, saiba que é simples, fácil e rápido. Basta clicar na imagem do PayPal (ou no cafezinho) e seguir as instruções, em ambiente seguro e com o respaldo do Paypal. Eu agradeço muito! :)


Você gostará destes vídeos!