Wie man den Int-Wert von Enum in C# erhält

Payel Ganguly 12 Oktober 2023
  1. Geben Sie Cast ein, um enum in int umzuwandeln
  2. static Klasse zur Konvertierung von enum nach int
  3. Verwendung von GetTypeCode() zur Konvertierung von enum nach int
  4. Weitere Beispiele
Wie man den Int-Wert von Enum in C# erhält

Dieses Tutorial erklärt, wie man den int-Wert von enum in C# erhält und listet einige der üblichen Code-Beispiele auf, um einen Überblick über den Aufzählungstyp von C# zu erhalten.

Enum (auch als Enumeration bekannt) ist ein benutzerdefinierter Datentyp oder ein Werttyp, der normalerweise eine Menge von konstanten, benannten Werten des zugrundeliegenden integralen Typs definiert. Das Schlüsselwort enum definiert einen Aufzählungstyp innerhalb des Codes. Das grundlegende Beispiel ist unten angegeben:

enum Name { Joe, Rick, John, Matt }

Der Aufzählungstyp der vordefinierten konstanten Werte ist standardmäßig vom Datentyp int. Der zugrundeliegende ganzzahlige Typ kann jedoch explizit auf jeden anderen ganzzahligen numerischen Typ wie sbyte, byte, short, ushort, int, uint, long und ulong gesetzt werden. Die folgende Tabelle beschreibt die Größe und den Bereich jedes vordefinierten integralen Typs in C#.

C#-Schlüsselwort Ganzzahlige Größe Bereich
sbyte sunterzeichnet 8-Bit [-128, 127]
byte ohne Vorzeichen 8-Bit [0, 255]
short sunterzeichnet 16-bit [-32,768, 32,767]
ushort ohne Vorzeichen 16-bit [0, 65,535]
int sunterzeichnet 32-bit [-2,147,483,648, 2,147,483,647]
uint ohne Vorzeichen 32-bit [0, 4,294,967,295]
long sunterzeichnet 64-bit [-9,223,372,036,854,775,808, 9,223,372,036,854,775,807]
ulong ohne Vorzeichen 64-bit [0, 18,446,744,073,709,551,615]

Geben Sie Cast ein, um enum in int umzuwandeln

Das Erhalten von int-Werten aus enum ist nicht so generisch, wie es scheint, da die Herausforderung innerhalb der Datentypen liegt. Siehe das folgende Beispiel.

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

Ausgabe:

20

Es kann verschiedene zugrundeliegende Typen für enum geben, was für die Programmierer etwas knifflig sein kann. Der obige Code speichert den int Wert von Days enum in abc . In diesem Fall wird die Typecasting-Methode verwendet, um den Datentyp einer Entität in einen anderen Datentyp zu ändern, wodurch die korrekte Verwendung der Variablen sichergestellt wird. Aber die Verwendung von Typecasting wird nicht immer bevorzugt.

Es gibt Wege, die keine Abhängigkeit vom Typecasting haben und ziemlich einfach sein können. Diese Umgehungsmöglichkeiten werden im Folgenden anhand von Codebeispielen ausführlich erläutert.

static Klasse zur Konvertierung von enum nach 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);
  }
}

Ausgabe:

3

Der obige Code zeigt, dass Subjects.science den richtigen Wert von 3 erhält, ohne darüber nachzudenken, den richtigen ganzzahligen Wert zu typisieren.

Verwendung von GetTypeCode() zur Konvertierung von enum nach 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);
  }
}

Ausgabe:

Int32

Wenn irgendein Programmierer keine statische Konstante verwenden möchte, dann kann er die obige Methode von GetTypeCode() verwenden. Der gesamte obige Code extrahiert erfolgreich die ganze Zahl aus dem enum-Typ. Die folgenden Beispiele sollen Ihnen helfen, weitere Ideen zu bekommen.

Weitere Beispiele

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

Ausgabe:

4

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

Ausgabe:

2147977653

Verwandter Artikel - Csharp Integer

Verwandter Artikel - Csharp Enum