網(wǎng)站首頁 編程語言 正文
一、概述
定義一個值類型,其中包含固定值集合。枚舉類型變量可以是此集合中的任意一個或多個值。
枚舉使用enum關(guān)鍵字來聲明,與類同級。
枚舉本身可以有修飾符,但枚舉的成員始終是公共的,不能有訪問修飾符。枚舉本身的修飾符僅能使用public和internal。
二、常數(shù)枚舉
1、定義枚舉類型
顯式指定枚舉的底層數(shù)據(jù)類型,如果沒有明確指定底層數(shù)據(jù)類型則默認(rèn)的數(shù)據(jù)類型是int類型。
enum sex : byte //顯示指定枚舉的底層數(shù)據(jù)類型
{
male,
female, //此逗號可以省略
}; //此分號可以省略
顯式設(shè)置枚舉的成員常量值,默認(rèn)是從0開始,逐個遞增的。但是以下例子卻設(shè)置成了1,2,3,40,1。而且成員值可以一樣的。
void Main()
{
Console.WriteLine((int)Week.Monday); //獲取值
}
enum Week
{
Monday = 1,
Tuesday = 2,
Wednesday = 3,
Sunday = 0,
Everyday = 1 //成員的值可以設(shè)置成一樣的,但是成員不行
}
2、聲明枚舉變量并初始化
Color myColor=Color.White;
Color myColor=(Color)1;//由值轉(zhuǎn)成枚舉成員
Color myColor=(Color)Enum.Parse(typeof(Color), "White"); //將字符串解析成枚舉成員
3、枚舉變量的使用
Color myColor = Color.White;
string Name = myColor.ToString();
int intName = (int)myColor;//或Convert.ToInt32(myColor)
string Name1 = Enum.GetName(typeof(Color), 1); //由值獲取名
4、循環(huán)枚舉
Dictionary<string, int> Colorlist = new Dictionary<string, int>();
string[] keys = Enum.GetNames(typeof(Color));
Array values = Enum.GetValues(typeof(Color));
for (int i = 0; i < keys.Length; i++)
{
Colorlist.Add(keys[i], (int)values.GetValue(i));
}
應(yīng)用:
//填充comboBox
comboBox1.DataSource = Enum.GetValues(typeof(Color));
Color value = (Color)comboBox1.SelectedValue;
//Grid的列數(shù)據(jù)
DataGridViewComboBoxColumn col = new DataGridViewComboBoxColumn();
col.Name = "My Enum Column";
col.DataSource = Enum.GetValues(typeof(Color));
col.ValueType = typeof(Color);
dataGridView1.Columns.Add(col);
三、位域枚舉
位域通常用于由可組合出現(xiàn)的元素組成的列表,位域設(shè)計為通過按位“或”運算組合來生成未命名的值,而枚舉常數(shù)則不是。
位域通常用 2 的冪(即 1、2、4、8 、16等2的幾次方)定義枚舉常量。這意味著組合的枚舉常量中的各個標(biāo)志都不重疊。
1、定義枚舉類型
[Flags] //Flags屬性表示此枚舉為位域枚舉
enum Color
{
None = 0,
Red = 1,
White = 2,
Blue = 4,
Black = 8
}
2、聲明枚舉變量并初始化
Color myColor=Color.Red | Color.White|Color.Blue;//”|”表示相并
Color myColor = (Color)3;//由值轉(zhuǎn)成枚舉成員,Red, White
Color myColor = (Color)Enum.Parse(typeof(Color), "White,Blue"); //將字符串解析成枚舉成員,White, Blue
3、枚舉變量的使用
Color myColor = Color.Red | Color.White | Color.Blue;
string Name = myColor.ToString();//Red,White,Blue
int intName = (int)myColor;//或Convert.ToInt32(myColor),7
string Name2 = Enum.GetName(typeof(Color), 2);//由值獲取名,White
4、位域枚舉特殊操作
1、判斷枚舉變量是否包含在某個或某些枚舉項:
if(myColor & Color.Red)==Color.Red){}//”&”表示相交,判斷是否包含Color.Red
if(myColor & Color.Red)!=0){}
2、從枚舉變量中去除某個或某些枚舉項:
myColor=myColor&(~(Color.Red | Color.White ))//”~”表示取反,出去Color.Red | Color.White兩項。
或者
myColor=myColor^(Color.Red | Color.White )//”^”表示異或,不同為真,相同為假。
3、判斷美劇變量是否等于某個或某些枚舉項:
if((myColor | Color.Write)==Color.Write)//判斷是否只有白色。
原文鏈接:https://www.cnblogs.com/springsnow/p/9428501.html
相關(guān)推薦
- 2022-07-01 Python錯誤+異常+模塊總結(jié)_python
- 2022-05-07 如何在Python中進(jìn)行異常處理_python
- 2022-02-21 docker啟動容器錯誤:docker: Error response from daemon: O
- 2022-03-31 用python實現(xiàn)彈球小游戲_python
- 2022-07-22 Redis主從復(fù)制關(guān)系實現(xiàn)(Linux系統(tǒng))
- 2022-08-24 K8S之StatefulSet有狀態(tài)服務(wù)詳解_云其它
- 2023-01-09 基于Go語言實現(xiàn)插入排序算法及優(yōu)化_Golang
- 2022-10-27 kotlin?協(xié)程上下文異常處理詳解_Android
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支