Às vezes, mais atributos são necessários para lidar melhor com uma classe. Por exemplo, digamos que você tenha quatro grupos de clientes diferentes: tipos de clientes corporativos, maiores, menores e novos, ou uma classe para pesquisa com três métodos de pesquisa diferentes: disquete, disco rígido e rede. Então, não seria melhor escolher uma de uma lista de opções em vez de definir a propriedade relevante com números ou texto que você não consegue entender?
Acho que a resposta é sim. Porque esse tipo de processamento é chamado de “enumeração”.
Abra o projeto da seção anterior e vamos adicionar algum código.
Adicione o seguinte código à classe CDog:
A palavra-chave “Enum” é utilizada para definir uma enumeração, ou seja, é uma lista de opções possíveis. Cada opção possui um número correspondente, o que significa que BigAndShaggy é igual a 1, ShortCrewCut é igual a 2 e assim por diante.
Deve-se notar que ao adicionar informações sobre itens de enumeração ao banco de dados, seus valores correspondentes são muito úteis. Como “BigAndShaggy” na verdade representa o valor 1, ele pode ser inserido diretamente no campo numérico do banco de dados. Isso significa que você pode usar strings facilmente para manter o banco de dados.
Então, vamos criar uma lista de tipos de Dog's Coat e definir outro atributo para adicionar esses tipos à classe CDog.
Declare as seguintes variáveis na classe:
PRivateudtCoatAsCoatType
Esta variável privada definida é usada para salvar o atributo do tipo Coat que será adicionado. Observe que a variável udtCoat não é uma string nem um número inteiro, mas nosso próprio tipo de enumeração CoatType definido.
Ao abrir a classe CDog, selecione o comando “AddProcedure” no menu “Ferramentas” e a caixa de diálogo correspondente aparecerá;
Digite Casaco na caixa de edição Nome;
Marque o botão de opção "Propriedade" e clique em [OK].
O sistema gera automaticamente a seguinte estrutura de código:
Mas esta não é a estrutura de que precisamos. No código, a variável do tipo “Variante” pode receber e processar qualquer tipo de dado. Na classe CDog que definimos, o último atributo é Age, que só pode aceitar números inteiros. Mas agora o atributo precisa estar apto a receber o tipo de dado da lista CoatType, então as seguintes modificações precisam ser feitas:
Altere todas as "Variant" no código gerado para "CoatType";
Em seguida, adicione algum código que realmente lide com as propriedades.
No procedimento Get da propriedade, adicione o seguinte código:
No procedimento Let da propriedade, adicione o seguinte código:
Mude para Form1;
Altere o código do botão de comando para:
Agora comece a digitar: MyDog.Coat=
A mágica acontece, ao apertar a tecla "=" aparece uma lista de opções possíveis, da qual podemos escolher uma.
Conclua a digitação do código: MyDog.Coat=ShortCrewCut
A seguir, obteremos o valor da propriedade Coat. Se agora estivéssemos simplesmente exibindo os valores das propriedades em uma caixa de diálogo de mensagem, simplesmente retornaríamos o valor da seleção. Por exemplo, se ShortCrewCut for selecionado, sua propriedade deverá retornar 2. Se você não acredita, você pode tentar!
Mas aqui está outro método, que consiste em usar a instrução If-Then para determinar Coat:
Adicione o seguinte código após o código existente para o botão de comando:
O código aqui simplesmente determina o valor da propriedade Coat e exibe a caixa de diálogo de mensagem correspondente. Claro, a instrução "SelectCase" também pode ser usada aqui.
Por fim, adicionamos uma última instrução para liberar memória do computador:
Adicione o seguinte código após o código existente para o botão de comando:
Pressione F5 para executar o programa e clique no botão Comando para testá-lo.
Qual foi o resultado? ->