Como Obter Valor Intensivo do Enum em C#
-
Tipo Fundido para converter
enum
emint
-
classe
static
para converter oenum
paraint
-
Utilize
GetTypeCode()
para converterenum
paraint
- Mais exemplos
Este tutorial explica como obter o valor int
do enum
em C# e lista alguns exemplos de códigos comuns para obter uma visão geral do tipo de enumeração em C#.
O Enum
(também conhecido como Enumeração
) é um tipo de dado definido pelo usuário ou um tipo de valor que normalmente define um array de valores constantes do tipo integral subjacente. A palavra-chave enum
define um tipo de enumeração dentro do código. O exemplo básico é dado abaixo:
enum Name { Joe, Rick, John, Matt }
O tipo de enumeração dos valores constantes pré-definidos é do tipo de dado int
por padrão. Entretanto, o tipo integral subjacente pode ser explicitamente definido para qualquer outro tipo numérico integral como sbyte
, byte
, short
, ushort
, int
, uint
, long
e ulong
. A tabela abaixo descreve o tamanho e o alcance de cada tipo integral predefinido em C#.
C# palavra-chave | Tamanho inteiro | Gama |
---|---|---|
sbyte |
assinado em 8 bits | [-128, 127] |
byte |
8-bit sem assinatura |
[0, 255] |
short |
assinado em 16 bits | [-32,768, 32,767] |
ushort |
não assinado 16 bits | [0, 65,535] |
int |
assinado 32-bit | [-2,147,483,648, 2,147,483,647] |
uint |
32-bit sem assinatura |
[0, 4,294,967,295] |
long |
assinado 64-bits | [-9,223,372,036,854,775,808, 9,223,372,036,854,775,807] |
ulong |
não assinado 64-bits | [0, 18,446,744,073,709,551,615] |
Tipo Fundido para converter enum
em int
Obter o valor de int
do enum
não é tão genérico como parece ser, pois o desafio está dentro dos tipos de dados. Veja o exemplo a seguir.
public enum Days { Numbers = 20, DayType = 3 }
int abc = (int)Days.Numbers;
Console.WriteLine(abc);
Resultado:
20
Pode haver diferentes tipos subjacentes para o enum
que pode ser um pouco complicado para os programadores. O código acima armazena o valor int
de Days
de enum
a abc
. Neste caso, o método Typecasting é utilizado para alterar o tipo de dados de uma entidade para outro tipo de dados, garantindo o uso correto das variáveis. Mas nem sempre é preferível utilizar o Typecasting.
Há maneiras que não dependem do Typecasting e podem ser bastante simples. Estas maneiras são explicadas em detalhes com exemplos de código abaixo.
classe static
para converter o enum
para int
using System;
class Demo {
public static class Subjects {
public const int maths = 2;
public const int science = 3;
public const int english = 4;
public const int history = 5;
}
public static void Main() {
int xyz = Subjects.science;
Console.WriteLine(xyz);
}
}
Resultado:
3
O código acima mostra que Subjects.science
obtém o valor correto de 3
sem pensar em digitar o valor inteiro correto.
Utilize GetTypeCode()
para converter enum
para int
using System;
class Demo {
public enum Subjects { maths, science, english, history }
public static void Main() {
Subjects Maths = Subjects.maths;
Object sub = Convert.GetTypeCode(Maths);
Console.WriteLine(sub);
}
}
Resultado:
Int32
Se qualquer programador não quiser utilizar static const
, então pode utilizar o método acima de GetTypeCode()
. Todo o código acima extrai com sucesso o número inteiro do tipo enum. Os exemplos abaixo ajudarão a obter mais idéias.
Mais exemplos
Exemplo 1:
using System;
class Demo {
public enum Positions { Role = 2, Project = 3, Jobs = 4 }
public static void Main() {
int a = (int)Positions.Jobs;
Console.WriteLine(a);
}
}
Resultado:
4
Exemplo 2:
using System;
class Demo {
public enum Galaxy : long { Sun = 1, S5HVS1 = 2, HD140283 = 2147977653 }
;
public static void Main() {
long solar = (long)Galaxy.HD140283;
Console.WriteLine(solar);
}
}
Resultado:
2147977653
Artigo relacionado - Csharp Integer
- C# Converter Int a String
- Converter Int em Enum em C#
- Número aleatório em um intervalo em C#
- Random Int em C#
- Como converter String para Int em C#
- Converter Int em Hex em C#