C# 列舉
C# 列舉
列舉 (enum
) 是一種特殊的“類”,它代表一組 **常量**(不可更改/只讀變數)。
要建立列舉,請使用 enum
關鍵字(而不是 class 或 interface),並用逗號分隔列舉項。
示例
enum Level
{
Low,
Medium,
High
}
您可以使用 **點** 語法訪問列舉項。
Level myVar = Level.Medium;
Console.WriteLine(myVar);
自己動手試一試 »
Enum 是 "enumerations"(列舉)的縮寫,意思是 "明確列出"。
類中的列舉
您也可以將列舉放在類內部。
示例
class Program
{
enum Level
{
Low,
Medium,
High
}
static void Main(string[] args)
{
Level myVar = Level.Medium;
Console.WriteLine(myVar);
}
}
輸出將是:
中
列舉值
預設情況下,列舉的第一個項的值為 0。第二個項的值為 1,依此類推。
要從列舉項獲取整數值,您必須 顯式轉換 該項為 int
。
示例
enum Months
{
January, // 0
February, // 1
March, // 2
April, // 3
May, // 4
June, // 5
July // 6
}
static void Main(string[] args)
{
int myNum = (int) Months.April;
Console.WriteLine(myNum);
}
輸出將是:
3
您也可以分配自己的列舉值,下一個項將相應地更新其數字。
示例
enum Months
{
January, // 0
February, // 1
March=6, // 6
April, // 7
May, // 8
June, // 9
July // 10
}
static void Main(string[] args)
{
int myNum = (int) Months.April;
Console.WriteLine(myNum);
}
輸出將是:
7
Switch 語句中的列舉
列舉通常用於 switch
語句中,以檢查相應的值。
示例
enum Level
{
Low,
Medium,
High
}
static void Main(string[] args)
{
Level myVar = Level.Medium;
switch(myVar)
{
case Level.Low:
Console.WriteLine("Low level");
break;
case Level.Medium:
Console.WriteLine("Medium level");
break;
case Level.High:
Console.WriteLine("High level");
break;
}
}
輸出將是:
中等級別
為什麼以及何時使用列舉?
當您擁有一組您知道不會改變的值時,請使用列舉,例如月份、星期幾、顏色、一副牌等等。