Cómo obtener el valor Int del Enum en C#

Payel Ganguly 12 octubre 2023
  1. Escriba el molde para convertir el enum en int
  2. Clase static para convertir el enum en int
  3. Usando GetTypeCode() para convertir el enum a int
  4. Más ejemplos
Cómo obtener el valor Int del Enum en C#

Este tutorial explica cómo obtener el valor int de enum en C# y enumera algunos de los ejemplos de códigos comunes para obtener una visión general del tipo de enumeración de C#.

Enum (también conocido como Enumeración) es un tipo de dato definido por el usuario o un tipo de valor que normalmente define un conjunto de valores con nombre constante del tipo integral subyacente. La palabra clave enum define un tipo de enumeración dentro del código. El ejemplo básico se da a continuación:

enum Name { Joe, Rick, John, Matt }

El tipo de enumeración de los valores constantes predefinidos es del tipo de datos int por defecto. Sin embargo, el tipo de integral subyacente puede ser configurado explícitamente a cualquier otro tipo numérico integral como sbyte, byte, short, ushort, int, uint, long y ulong. La siguiente tabla describe el tamaño y el rango de cada tipo de integral predefinido en C#.

Palabra clave de C# Tamaño entero Rango
sbyte firmado 8-bit [-128, 127]
byte no firmado 8-bit [0, 255]
short firmado 16-bit [-32,768, 32,767]
ushort no firmado 16-bit [0, 65,535]
int firmado 32-bit [-2,147,483,648, 2,147,483,647]
uint no firmado 32-bit [0, 4,294,967,295]
long firmado 64-bit [-9,223,372,036,854,775,808, 9,223,372,036,854,775,807]
ulong no asignado 64-bit [0, 18,446,744,073,709,551,615]

Escriba el molde para convertir el enum en int

Obtener el valor de int del enum no es tan genérico como parece, ya que el desafío está en los tipos de datos. Véase el siguiente ejemplo.

public enum Days { Numbers = 20, DayType = 3 }
int abc = (int)Days.Numbers;
Console.WriteLine(abc);

Resultado:

20

Puede haber diferentes tipos subyacentes para enum que pueden ser un poco complicados para los programadores. El código anterior almacena el valor int de Days enum a abc . En este caso, el método Typecasting se usa para cambiar el tipo de datos de una entidad a otro tipo de datos, asegurando el uso correcto de las variables. Pero no siempre se prefiere el uso del Typecasting.

Hay formas que no tienen ninguna dependencia del Typecasting y pueden ser bastante sencillas. Estas formas se explican en detalle con los siguientes ejemplos de códigos.

Clase static para convertir el enum en 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

El código anterior muestra que Subjects.science obtiene el valor correcto de 3 sin pensar en teclear el valor entero correcto.

Usando GetTypeCode() para convertir el enum a 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

Si algún programador no quiere usar static const, puede usar el método anterior de GetTypeCode(). Todo el código anterior extrae con éxito el entero del tipo enum. Los ejemplos de abajo ayudarán a obtener más ideas.

Más ejemplos

Ejemplo 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

Ejemplo 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

Artículo relacionado - Csharp Integer

Artículo relacionado - Csharp Enum