C# 枚舉(Enum)

在C#中,enum( 枚舉類型)用于將常量名稱分配給一組數(shù)字整數(shù)值。它使常量值更易讀,例如,WeekDays.Monday在引用一周中的某天時,其可讀性比數(shù)字0 更易讀。

枚舉是直接在命名空間、類或結(jié)構(gòu)中使用 enum 關(guān)鍵字定義的。所有常量名都可以在大括號內(nèi)聲明,并用逗號分隔。下面定義了工作日的枚舉。

enum WeekDays
{
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
}

上面,WeekDays枚舉在每行中聲明成員,每行用逗號分隔。

枚舉值

如果未將值分配給枚舉成員,則編譯器將在默認(rèn)情況下為每個成員分配整數(shù)值(從零開始)。枚舉的第一個成員將為0,并且每個連續(xù)枚舉成員的值將增加1。

enum WeekDays
{
    Monday,     // 0
    Tuesday,    // 1
    Wednesday,  // 2
    Thursday,   // 3
    Friday,     // 4
    Saturday,   // 5
    Sunday      // 6
}

可以為枚舉成員分配不同的值。枚舉成員的默認(rèn)值的更改將自動按順序向其他成員分配增量值。

enum Categories
{
    Electronics,    // 0
    Food,           // 1
    Automotive = 6, // 6
    Arts,           // 7
    BeautyCare,     // 8
    Fashion         // 9
}

您甚至可以為每個成員分配不同的值。

enum Categories
{
    Electronics = 1,  
    Food = 5, 
    Automotive = 6, 
    Arts = 10, 
    BeautyCare = 11, 
    Fashion = 15,
    WomanFashion = 15
}

枚舉可以是任何數(shù)字?jǐn)?shù)據(jù)類型,例如 byte,sbyte,short,ushort,int,uint,long 或 ulong。但是,枚舉不能為字符串類型。

在 enum 名稱后指定類型為:type。下面定義了字節(jié) enum。

enum Categories: byte
{
    Electronics = 1,  
    Food = 5, 
    Automotive = 6, 
    Arts = 10, 
    BeautyCare = 11, 
    Fashion = 15
}

訪問一個枚舉

可以使用點語法: enum.member 訪問枚舉

enum WeekDays
{
    Monday, 
    Tuesday,
    Wednesday,
    Thursday, 
    Friday, 
    Saturday,
    Sunday 
}

Console.WriteLine(WeekDays.Monday); // 星期一
Console.WriteLine(WeekDays.Tuesday); // 星期二
Console.WriteLine(WeekDays.Wednesday); // 星期三
Console.WriteLine(WeekDays.Thursday); // 星期四
Console.WriteLine(WeekDays.Friday); // 星期五
Console.WriteLine(WeekDays.Saturday); // 星期六
Console.WriteLine(WeekDays.Sunday); // 星期日

轉(zhuǎn)換枚舉

從枚舉類型轉(zhuǎn)換為其基礎(chǔ)整數(shù)類型需要顯式強制轉(zhuǎn)換。

enum WeekDays
{
    Monday, 
    Tuesday,
    Wednesday,
    Thursday, 
    Friday, 
    Saturday,
    Sunday 
}

Console.WriteLine(WeekDays.Friday); //輸出:星期五 
int day = (int) WeekDays.Friday; // 枚舉到int的轉(zhuǎn)換
Console.WriteLine(day); //輸出:4 
		
var wd = (WeekDays) 5; // 從int到枚舉的轉(zhuǎn)換
Console.WriteLine(wd);//輸出:星期六

enum是一個抽象類。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清