博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 中的枚举类型 enum (属于值类型)
阅读量:6292 次
发布时间:2019-06-22

本文共 3588 字,大约阅读时间需要 11 分钟。

 

原文

 

C# 支持两种特殊的值类型:枚举和结构。

声明枚举:声明时要声明所有可能的值。

 

using System;      using System.Collections.Generic;      using System.Linq;      using System.Text;            namespace enumType      {          enum Season     // enum 类型定义在 class 外面          {              Spring, Summer, Fall, Winter    // 最后一个元素后面不加" ; "          }                class Program          {              //enum Season     // 枚举变量定义在此处也可以              //{              //    Spring, Summer, Fall, Winter                  //}                    static void Main(string[] args)              {                  Season beauty = Season.Fall;                  Season coldSeason = Season.Winter;                  Season currentSeason = Season.Summer;                        Console.WriteLine("The beautiful season is {0}.", beauty);                                // 用 WriteLine 显示枚举变量时,编译器会自动生成代码,输出和变量值匹配的字符串                        Console.WriteLine("The beautiful season is {0}.", beauty.ToString());                     // 也可以使用 ToString 方法,显式地将一个枚举变量转换成代表其当前值的一个字符串                        Console.WriteLine("The current season is {0}.", currentSeason);                  Console.WriteLine("{0} is very cold.", coldSeason);              }          }      }

 

 运行后结果如下:

在枚举的内部,它的每个元素都关联(对应)着一个整数值。默认情况下,第一个对应整数 0,以后每个元素所对应的整数都递增 1。我们可以获取一个枚举变量的基础整数值,为此,必须先将它转换为基本类型。

 

using System;      using System.Collections.Generic;      using System.Linq;      using System.Text;            namespace enumType      {          enum Season     // enum 类型定义在 class 外面          {              Spring, Summer, Fall, Winter    // 最后一个元素后面不加" ; "          }                class Program          {              static void Main(string[] args)              {                  Season currentSeason = Season.Summer;                        Console.WriteLine("Summer is {0}", (int)currentSeason); // 枚举的基础整数值              }          }      }

 

运行后结果如下:

 也可以把一个特定的整数常量和一个枚举类型的文字常量关联起来。

 

using System;      using System.Collections.Generic;      using System.Linq;      using System.Text;            namespace enumType      {          enum Season     // 定义为 short 可以节省空间          {              Spring = 168, Summer, Fall, Winter    // 最后一个元素后面不加" ; "          }                class Program          {              static void Main(string[] args)              {                  Console.WriteLine("Spring is {0}", (int)Season.Spring);     // 168                  Console.WriteLine("Summer is {0}", (int)Season.Summer);     // 169 依次 +1                  Console.WriteLine("Fall is {0}", (int)Season.Fall);         // 170                  Console.WriteLine("Winter is {0}", (int)Season.Winter);     // 171              }          }      }

 

 运行后结果如下:

多个枚举文字常量可能拥有相同的基础值,可以像如下这样声明。

 

using System;      using System.Collections.Generic;      using System.Linq;      using System.Text;            namespace enumType      {          enum Season     // enum 类型定义在 class 外面          {              Spring, Summer, Fall, Autumn = Fall, Winter    // 最后一个元素后面不加" ; "          }                class Program          {              static void Main(string[] args)              {                  Console.WriteLine("Spring is {0}", (int)Season.Spring);     // 0                  Console.WriteLine("Summer is {0}", (int)Season.Summer);     // 1                  Console.WriteLine("Fall is {0}", (int)Season.Fall);         // 2                  Console.WriteLine("Autumn is {0}", (int)Season.Autumn);     // 2 基础值相同                  Console.WriteLine("Winter is {0}", (int)Season.Winter);     // 3              }          }      }

 

运行后结果如下:

声明枚举时,枚举的文字常量将默认获得 int 类型的值。但可以选择枚举的基本类型。

 

转载地址:http://gpcta.baihongyu.com/

你可能感兴趣的文章
ARM想将芯片装进人类大脑 降低能耗是一大挑战
查看>>
Oracle数据库的备份方法
查看>>
Selenium 自动登录考勤系统
查看>>
关于如何以编程的方式执行TestNG
查看>>
智能照明造福千家万户 家居智能不再是梦
查看>>
物联网如何跳出“看起来很美”?
查看>>
浅谈MySQL 数据库性能优化
查看>>
《UNIX/Linux 系统管理技术手册(第四版)》——1.10 其他的权威文档
查看>>
灵动空间 创享生活
查看>>
《UNIX网络编程 卷1:套接字联网API(第3版)》——8.6 UDP回射客户程序:dg_cli函数...
查看>>
不要将时间浪费到编写完美代码上
查看>>
《算法基础:打开算法之门》一3.4 归并排序
查看>>
高德开放平台开放源代码 鼓励开发者创新
查看>>
《高并发Oracle数据库系统的架构与设计》一2.5 索引维护
查看>>
Firefox 是 Pwn2own 2014 上攻陷次数最多的浏览器
查看>>
阿里感悟(十八)- 应届生Review
查看>>
话说模式匹配(5) for表达式中的模式匹配
查看>>
《锋利的SQL(第2版)》——1.7 常用函数
查看>>
jquery中hover()的用法。简单粗暴
查看>>
线程管理(六)等待线程的终结
查看>>