Associando enums a cordas em C#

Associando enums a cordas em C#

Enums em C# são usados ​​para definir um conjunto de valores constantes nomeados que podem ser atribuídos a variáveis. Eles são úteis para definir um conjunto fixo de opções para uma variável ou parâmetro específico. No entanto, quando se trata de exibir as opções de enum ao usuário, nem sempre é ideal usar os nomes de enum diretamente. Associar os valores de enumeração a strings correspondentes pode tornar o código mais legível e fácil de usar. Neste artigo, discutiremos como associar enums a strings em C# com um código de exemplo.

Associando enums a cordas em C#

Para associar uma enumeração a uma string, podemos usar o atributo de descrição. Este atributo nos permite anexar uma string a cada valor de uma enumeração. Aqui está um exemplo:

Public Enum enumname

[Descrição ("String Value")]
Enumvalue

Nesta sintaxe, primeiro definimos nossa enumeração com o nome "Enumname". Em seguida, adicionamos o atributo de descrição a cada valor da enumeração. Dentro do atributo, adicionamos o valor da string correspondente para o valor enum mais adiante está um código C# que ilustra a associação enum com strings:

usando o sistema;
usando o sistema.ComponentModel;
Carro de enum público

[Descrição ("Melhor fabricante de carros elétricos")]]
BMW,
[Descrição ("carros mais confiáveis")]
Toyota,
[Descrição ("Carros mais seguros para dirigir")]]
Volvo

Public Static Class EnumExtensions

public static string getDescription (este valor de enumeração)

VAR Campo = Valor.GetType ().Getfield (valor.Para sequenciar());
var atributos = (DescriptionAttribute []) Campo.GetCustomattributes (typeof (descriptionAttribute), false);
Atributos de retorno.Comprimento> 0 ? Atributos [0].Descrição: Valor.Para sequenciar();


Programa de classe pública

public static void main ()

carro mycar = carro.Volvo;
string mycarstring = mycar.GetDescription ();
Console.WriteLine (MycarString);

O código acima é um exemplo de como associar enums a seqüências de caracteres em C#. Aqui, definimos um enum "carro" com três valores - BMW, Toyota e Volvo. Cada um desses valores está associado a uma string correspondente usando o atributo de descrição.

Também definimos uma classe estática “EnumExtensions” que contém um método “getDescription” para obter o valor da string correspondente da enum. O método funciona primeiro obtendo as informações de campo para o valor da enumeração usando a reflexão e, em seguida. Se o atributo existir, ele retornará seu valor; Caso contrário, ele apenas retorna o nome do valor da enumeração.

Finalmente, em nosso método principal, criamos uma variável "mycar" do tipo de carro e atribuímos o carro do valor.Volvo. Em seguida, chamamos o método GetDescription em "MyCar" e atribuímos o resultado a "MycarString". Finalmente, imprimimos o valor de "MycarString" no console, que produz "carros mais seguros para dirigir". Isso demonstra como podemos facilmente associar valores de enume.

Conclusão

Associando enums a strings em C# pode tornar nosso código mais legível e fácil de usar e, usando o atributo de descrição e o método GetDescription, podemos facilmente associar valores de string a cada valor de enumeração e recuperar a string correspondente quando necessário. Essa técnica pode ser especialmente útil nas interfaces do usuário ou ao trabalhar com fontes de dados externas que usam valores de string em vez de valores de enum.