首頁  >  文章  >  後端開發  >  C# 中的列舉

C# 中的列舉

PHPz
PHPz原創
2024-09-03 15:15:06840瀏覽

Enum是C#中的保留關鍵字,代表枚舉。枚舉是 C# 中的使用者定義類型,它保存一組命名常數。集合中的每個常數都有一個值(預設為整數)。可以透過名稱和值來存取常數。因此,枚舉中的名稱不能重複。枚舉的語法很簡單。它以關鍵字 enum 開頭,後面跟著變數名稱和一組用大括號括起來的命名常數。當然,它以分號結尾。

文法:

enum <enum_name> {<set_of_named_constants>};

範例:

代碼:

enum Day { Sun, Mon, Tue, Wed, Thu, Fri, Sat };
enum Month { Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec };

C# 中列舉的工作

枚舉在 C# 中有一個底層型別。這意味著枚舉中的每個常數都將分配一個基礎類型的值。 C# 中枚舉的預設基礎型別是整數。

在上面的列舉 Day 中,我們聲明了七個常數。它有一個預設的整數基礎類型。因此,每個常數都會分配一個整數值。預設情況下,該值從 0 開始。因此,Sun 將被分配為 0;週一將分配 1 個,週二將分配 2 個,依此類推。

讓我們再舉一個例子。我們將值 1 分配給 Sun。這將強制編譯器從 1 而不是 0 開始賦值。然後,我們將值 8 賦給 Thu。然後編譯器會從 8 開始繼續賦值。

範例#1

代碼:

using System;
public class Program
{
enum Day
{
Sun = 1,
Mon,
Tue,
Wed,
Thu = 8,
Fri,
Sat
};
public static void Main()
{
for (int i = 0; i < 10; i++)
{
Console.WriteLine((Day)i);
}
}
}

輸出:

C# 中的列舉

現實世界的例子可以是客戶旅程中的各個階段。當然,所有常數都可以單獨聲明並為其分配相應的整數值,但是使用枚舉可以消除記住每個階段的整數值的麻煩,並使程式碼更容易理解。

範例#2

代碼:

using System;
public class Program
{
enum ClientJourney
{
Introduced = 1,
UnderReview = 2,
Reviewed = 3,
Documentation = 4,
Onboarded = 5,
Declined = 6,
Deboarded = 7
};
public static void Main()
{
Console.WriteLine("The various stages in the journey of a client are:\n");
foreach (string str in Enum.GetNames(typeof(ClientJourney)))
{
Console.WriteLine(str);
}
}
}

輸出:

C# 中的列舉

C# 中的枚舉方法

下面給出了 C# 中的枚舉方法:

1. GetName(類型, Int32)

GetName 方法傳回對應到枚舉中指定值的命名常數。如果該值沒有命名常數,則傳回一個空字串。

此方法需要兩個參數 - 一個是類型,即枚舉本身,另一個是指定的值。

在上面的 Days 範例中,我們將透過 GetName 方法列印命名常數。

代碼:

using System;
public class Program
{
enum Day
{
Sun = 1,
Mon,
Tue,
Wed,
Thu = 8,
Fri,
Sat
}
;
public static void Main()
{
for (int i = 0; i < 10; i++)
{
Console.WriteLine(Enum.GetName(typeof(Day), i));
}
}
}

輸出:

C# 中的列舉

2.取得名稱(型別)

在上面的範例中,我們必須使用 for 迴圈來檢索所有枚舉的命名常數。當我們需要單一或有限數量的命名常數時,GetName 方法更有用。

我們還有另一個方法 GetNames() 來取得所有命名常數。它以枚舉作為輸入參數。

在上面的 Days 範例中,我們將透過 GetNames 方法列印命名常數。

代碼:

using System;
public class Program
{
enum Day
{
Sun = 1,
Mon,
Tue,
Wed,
Thu = 8,
Fri,
Sat
}
;
public static void Main()
{
foreach(string namedConstant in Enum.GetNames(typeof(Day))){
Console.WriteLine(namedConstant);
}
}
}

輸出:

C# 中的列舉

3. 取得值(類型)

GetValues() 方法用於取得每個枚舉的命名常數的底層映射值。

在上面的 Days 範例中,我們將透過 GetNames 方法列印命名常數。

代碼:

using System;
public class Program
{
enum Day
{
Sun = 1,
Mon,
Tue,
Wed,
Thu = 8,
Fri,
Sat
}
;
public static void Main()
{
foreach (int i in Enum.GetValues(typeof(Day)))
{
Console.WriteLine(i);
}
}
}

輸出:

C# 中的列舉

C# 中的枚舉規則

下面給出了 C# 中枚舉的規則:

  • 枚舉是一種類型,而不是變數/常數/方法。
  • 枚舉命名的常數不能重複。它們必須是獨一無二的。
  • 枚舉的底層型不能是 char。
  • 枚舉的預設基礎型別是整數。
  • 預設情況下,指派給枚舉命名常數的值從 0 開始,每個連續命名的常數增加 1。

C# 中枚舉的優點

以下是提到的優點:

  • 枚舉是一種非常好的程式設計實作。它們用於定義應用程式或程式的常數集。因此,該集合保持不變並避免程序中的混亂,特別是當它是涉及多個開發人員的大型應用程式時。
  • 可以使用枚舉的場景很多。一周中的幾天、一年中的月份、溫度換算率、時區換算係數或應用程式的任何主表資料。這使得程式碼更具可讀性和更容易理解。

結論

至此,我們就看到了C#中enum的使用。我們已經了解了它的工作原理以及它的實際用途。我們了解使用枚舉時要遵守的規則。有些方法可以幫助我們存取和格式化枚舉。建議在程式碼中盡可能使用枚舉。這將幫助您觀察編碼良好實踐並學習枚舉。

以上是C# 中的列舉的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:C# 局部函數下一篇:C# 局部函數