如何在 C# 中從列舉 Enum 中獲取整型 Int 值

Payel Ganguly 2023年1月30日 2020年9月26日
  1. enumint 型別轉換
  2. static 類將 enum 轉換為 int
  3. 使用 GetTypeCode()enum 轉換為 int
  4. 更多例子
如何在 C# 中從列舉 Enum 中獲取整型 Int 值

本教程講解了如何在 C# 中從 enum 中獲取 int 值,並列舉了一些常見的程式碼示例,以收集 C# 的列舉型別的概況。

Enum(也稱為 Enumeration)是一種使用者定義的資料型別或值型別,通常定義了一組底層積分型別的常量命名值。enum 關鍵字在程式碼中定義了一個列舉型別。基本例子如下。

enum Name
{
    Joe,
    Rick,
    John,
    Matt
}

預定義常量值的列舉型別預設為資料型別 int。然而,底層的積分型別可以明確地設定為任何其他積分數字型別,如 sbytebyteshortushortintuintlongulong。下表描述了 C# 中每個預定義積分型別的大小和範圍。

C# 關鍵字 整數大小 範圍
sbyte 8 位有符號型 [-128, 127]
byte 8 位無符號型 [0, 255]
short 16 位有符號型 [-32,768, 32,767]
ushort 16 位無符號型 [0, 65,535]
int 32 位有符號型 [-2,147,483,648, 2,147,483,647]
uint 32 位無符號型 [0, 4,294,967,295]
long 64 位有符號型 [-9,223,372,036,854,775,808, 9,223,372,036,854,775,807]
ulong 64 位無符號型 [0, 18,446,744,073,709,551,615]

enumint 型別轉換

enum 中獲取 int 值並不像看起來那麼通用,因為挑戰在於資料型別。請看下面的例子。

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

輸出:

20

enum 可以有不同的底層型別,這對程式設計師來說可能有點棘手。上面的程式碼將 Days 列舉的 int 值儲存為 abc。在這種情況下,使用型別轉換方法將實體的資料型別改變為另一種資料型別,確保變數的正確使用。但使用型別轉換總是不可取的。

有一些不依賴於 Typecasting 的方法,而且可以很直接。這些方法將在下面的程式碼示例中詳細解釋。

static 類將 enum 轉換為 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);
    }
}

輸出:

3

上面的程式碼顯示,Subjects.science 在不考慮輸入正確的整數值的情況下得到了正確的值 3

使用 GetTypeCode()enum 轉換為 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);
    }
}

輸出:

Int32

如果任何程式設計師不想使用靜態常量,那麼他們可以使用上面的 GetTypeCode() 方法。以上所有的程式碼都成功地從列舉型別中提取了整數。下面的例子將幫助你獲得更多的想法。

更多例子

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

輸出:

4

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

輸出:

2147977653

相關文章 - Csharp Integer

相關文章 - Csharp Enum