新聞中心
枚舉是一組命名整型常量。枚舉類型是使用 enum 關(guān)鍵字聲明的。

在圖們等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計制作、網(wǎng)站制作 網(wǎng)站設(shè)計制作按需規(guī)劃網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計,成都全網(wǎng)營銷,外貿(mào)網(wǎng)站建設(shè),圖們網(wǎng)站建設(shè)費用合理。
C# 枚舉是值類型。換句話說,枚舉包含自己的值,且不能繼承或傳遞繼承。
枚舉的定義
聲明 enum 變量:
enum {enumeration list};
其中 enum_name 指定枚舉的類型名稱,enumeration list 是一個用逗號分隔的標(biāo)識符列表; 枚舉列表中的每個符號代表一個整數(shù)值,一個比他前面的符號大的整數(shù)值。默認(rèn)情況下,第一個枚舉符號的值是 0。例如:
enum Days {Sun , Mon, tue, Fir, sat };
枚舉的案例,枚舉變量的用法
實例
using System;
namespace EnumApplication
{
class EnumProgram
{
enum Days { Sun, Mon, tue, Wed, thu, Fri, sat };
static void Main(string[] args)
{
int WeekdayStart = (int)Days.Mon;
int WeekdayEnd = (int)Days.Fir;
Console.WriteLine("Monday:{0}",WeekdayStart);
Console.WriteLine("Firday:{0}",WeekdayEnd );
Console.ReadKey();
}
}
}
Enum 類:
所有枚舉類型都隱式地繼承 System.Enum 類型, System.Enum 類型是繼承自 System.ValueType 類型唯一不為值類型的引用類型;
Enum 類
| 方法 | 描述 |
|---|---|
| CompareTo | 將此實例與指定對象進(jìn)行比較并返回一個對二者的相對值的指示 |
| Equals:指示此實例是否等于指定的對象; | |
| Format | 根據(jù)指定格式將指定枚舉類型的指定值轉(zhuǎn)換為其等效的字符串表示形式 |
| GetName | 在指定枚舉中檢索具有指定值的常數(shù)的名稱 |
| GetNames | 檢索指定枚舉中常數(shù)名稱的數(shù)組 |
| GetTypeCode | 返回此實例的基礎(chǔ)TypeCode |
| GetUnderlyingTye | 返回指定枚舉的基礎(chǔ)類型 |
| GetValues | 指定枚舉中常數(shù)值的數(shù)組 |
| HasFlag | 確定當(dāng)前實例中是否設(shè)置了一個或多個位域 |
| IsDefined | 返回指定枚舉中是否存在具有指定值的常數(shù)的指示 |
| Parse | 將一個或多個枚舉常數(shù)的名稱或數(shù)字值得字符串表示轉(zhuǎn)換成等效得枚舉對象,一個參數(shù)指定該操作是否不區(qū)分大小寫 |
| TryParse | 將一個或多個枚舉常數(shù)得名稱或數(shù)字值得字符串表示轉(zhuǎn)換成等效得枚舉對象,用于指示轉(zhuǎn)換是否成功得返回值 |
顯示詳細(xì)信息
標(biāo)志枚舉/位枚舉
C# 標(biāo)記枚舉(Flags):枚舉類型是用于聲明一組命名得常數(shù)得基本類型數(shù)據(jù)(值類型)。
枚舉值是互斥得。而位標(biāo)記集合是一種由組合出現(xiàn)得元素形成得列表,通常設(shè)計為以”位或”運算組合新值。
枚舉類型則通常表達(dá)一種語義相對獨立得數(shù)值集合。而以枚舉類型來實現(xiàn)位標(biāo)記集合是最完美得組合,簡稱位枚舉。
位枚舉得定義
///
/// 權(quán)限枚舉
///
[Flags]
public enum permission 注意加了[Flags]特性后有三種寫法,
{ 一種是使用
位枚舉的實例
//1、給用戶創(chuàng)建、讀取,修改和刪除的權(quán)限
var parmission = Permission.Create | parmission.Read | parmission.Update | parmission.Delete;
//2、去掉用戶的修改和刪除權(quán)限
parmission = parmission &~parmission.Update;
parmission = parmission &~parmission.Delete;
//3、給用戶加上修改的權(quán)限
parmission = parmission | parmission.Update;
//4、判斷用戶是否有創(chuàng)建的權(quán)限
var isCreate = (parmission & parmission.Create)!=0;
//或者
var isCreate = (parmission & parmission.Create)==parmission.Create;
這時parmission枚舉的值將變成0+1+4=5,它的ToSting()將變成“parmission.Create,
parmission.Read”,parmission.Update; 這里我們可以解釋為什么第五個值Delete是8而不能成為5。
也就是說它的值不應(yīng)該是前幾項值的復(fù)合值。一個比較簡單的方法
就是用2的n次方來依次位每一項賦值,例如:1,2,4,8,16,32,64.......。
標(biāo)題名稱:講解C#枚舉使用方法
標(biāo)題網(wǎng)址:http://www.5511xx.com/article/cosjcej.html


咨詢
建站咨詢
