Ottieni valore Int da Enum in C#

Payel Ganguly 12 ottobre 2023
  1. Digita Cast per convertire enum in int
  2. Classe static per convertire enum in int
  3. Usa GetTypeCode() per convertire enum in int
  4. Altri esempi
Ottieni valore Int da Enum in C#

Questo tutorial spiega come ottenere il valore int da enum in C# ed elenca alcuni degli esempi di codice comuni per raccogliere una panoramica del tipo di enumerazione di C#.

Enum (noto anche come Enumeration) è un tipo di dati definito dall’utente o un tipo di valore che di solito definisce un insieme di valori denominati costanti del tipo integrale sottostante. La parola chiave enum definisce un tipo di enumerazione all’interno del codice. L’esempio di base è fornito di seguito:

enum Name { Joe, Rick, John, Matt }

Il tipo di enumerazione dei valori costanti predefiniti è del tipo di dati int per impostazione predefinita. Tuttavia, il tipo integrale sottostante può essere impostato esplicitamente su qualsiasi altro tipo numerico integrale come sbyte, byte, short, ushort, int, uint, long e ulong. La tabella seguente descrive le dimensioni e l’intervallo di ogni tipo integrale predefinito in C#.

Parola chiave C# Dimensione intera Gamma
sbyte Firmato a 8 bit [-128, 127]
byte 8 bit senza segno [0, 255]
short Firmato a 16 bit [-32,768, 32,767]
ushort 16 bit senza segno [0, 65,535]
int Firmato a 32 bit [-2,147,483,648, 2,147,483,647]
uint 32 bit senza segno [0, 4,294,967,295]
long Firmato a 64 bit [-9,223,372,036,854,775,808, 9,223,372,036,854,775,807]
ulong 64 bit senza segno [0, 18,446,744,073,709,551,615]

Digita Cast per convertire enum in int

Ottenere il valore int da enum non è così generico come sembra poiché la sfida risiede nei tipi di dati. Vedi il seguente esempio.

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

Produzione:

20

Ci possono essere diversi tipi sottostanti per enum che possono essere un po’ complicati per i programmatori. Il codice sopra memorizza il valore int di Days enum in abc. In questo caso, il metodo Typecasting viene utilizzato per modificare il tipo di dati di un’entità in un altro tipo di dati, garantendo un utilizzo corretto delle variabili. Ma l’uso del typecasting non è sempre preferito.

Ci sono modi per aggirare i quali non dipendono da Typecasting e possono essere piuttosto semplici. Questi modi per aggirare sono spiegati in dettaglio con gli esempi di codice di seguito.

Classe static per convertire enum in 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);
  }
}

Produzione:

3

Il codice sopra mostra che Subjects.science ottiene il valore corretto di 3 senza pensare a digitare il valore intero corretto.

Usa GetTypeCode() per convertire enum in 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);
  }
}

Produzione:

Int32

Se un programmatore non vuole usare static const, allora può usare il metodo precedente di GetTypeCode(). Tutto il codice precedente estrae correttamente il numero intero dal tipo enum. Gli esempi seguenti aiuteranno a ottenere più idee.

Altri esempi

Esempio 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);
  }
}

Produzione:

4

Esempio 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);
  }
}

Produzione:

2147977653

Articolo correlato - Csharp Integer

Articolo correlato - Csharp Enum