C# 枚举
2019-11-02 17:42
2126 查看
一、简介
枚举是一组命名整型常量;枚举类型是使用 enum 关键字声明的;C# 枚举是值类型。
二、语法
枚举的语法:
public enum 枚举名 { 值1, 值2, 值3, ............ } 或者 enum 枚举名 { 值1, 值2, 值3, ............ }
public:访问修饰符,公共的公开的,哪都可以访问;
enum:关键字,声明枚举的关键字;
枚举名:要符合Pascal命名规范;
将枚举声明到命名空间下面,类的外面,表示这个命名空间下,所以类都可以访问这个枚举;
三、类型转换
我们可以将一个枚举类型的变量跟int类型和string类型互相转换:
1.枚举类型默认是跟int类型相互兼容的,所以可以通过强制类型转换的语法互相转换,当转换一个枚举中没有的值的时候,不会抛异常,而是直接将数字显示出来。
2.如果将枚举类型转换成string类型,则直接调用ToString().
3.如果将字符串转换成枚举类型则需要下面这样一行代码:
(要转换的枚举类型)Enum.Parse(typeof(要转换的枚举类型),"要转换的字符串");
如果转换的字符串是数字,则就算枚举中没有,也会不会抛异常。
如果转换的字符串是文本,如果枚举中没有,则会抛出异常。
备注:所有的类型都能够转换成string类型,调用ToString()。
四、实例
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _03枚举的练习 { public enum Sesons { 春, 夏, 秋, 冬 } public enum QQState { OnLine, OffLine, Leave, Busy, QMe } class Program { static void Main(string[] args) { Sesons s = Sesons.春; QQState state = QQState.OnLine; } } }
五、类型转换实例
1.将枚举类型强转成int类型
namespace _04枚举和int以及string类型之间的转换 { public enum QQState { OnLine=1, OffLine, Leave, Busy, QMe } class Program { static void Main(string[] args) { #region 将枚举类型强转成int类型 QQState state = QQState.OnLine; //枚举类型默认可以跟int类型互相转换 枚举类型跟int类型是兼容的 int n = (int)state; Console.WriteLine(n); Console.WriteLine((int)QQState.OffLine); Console.WriteLine((int)QQState.Leave); Console.WriteLine((int)QQState.Busy); Console.WriteLine((int)QQState.QMe); Console.ReadKey(); #endregion } } }
2.将int类型强转为枚举类型
namespace _04枚举和int以及string类型之间的转换 { public enum QQState { OnLine=1, OffLine, Leave, Busy, QMe } class Program { static void Main(string[] args) { #region 将int类型强转为枚举类型 int n1 = 3; QQState state = (QQState)n1; Console.WriteLine(state); Console.ReadKey(); #endregion } } }
3.将枚举类型转换成字符串类型
amespace _04枚举和int以及string类型之间的转换 { public enum QQState { OnLine=1, OffLine, Leave, Busy, QMe } class Program { static void Main(string[] args) { #region 将枚举类型转换成字符串类型 //所有的类型都能够转换成string类型 int n1 = 10; // double n1 = 3.14; decimal n1 = 5000m; string s1= n1.ToString(); Console.WriteLine(s1); QQState state = QQState.OnLine; string s = state.ToString(); Console.WriteLine(s); Console.ReadKey(); #endregion } } }
4.将字符串转换成枚举类型
amespace _04枚举和int以及string类型之间的转换 { public enum QQState { OnLine=1, OffLine, Leave, Busy, QMe } class Program { static void Main(string[] args) { //枚举练习 //提示用户选择一个在线状态,我们接受,并将用户的输入转换成枚举类型。 //再次打印到控制台中 Console.WriteLine("请选择您的qq在线状态 1--OnLine 2--OffLine 3--Leave 4--Busy 5--QMe"); string input = Console.ReadLine(); switch (input) { case 1062 "1": QQState s1 = (QQState)Enum.Parse(typeof(QQState), input); Console.WriteLine("您选择的在线状态是{0}",s1); break; case "2": QQState s2 = (QQState)Enum.Parse(typeof(QQState), input); Console.WriteLine("您选择的在线状态是{0}",s2); break; case "3": QQState s3 = (QQState)Enum.Parse(typeof(QQState), input); Console.WriteLine("您选择的在线状态是{0}",s3); break; case "4": QQState s4 = (QQState)Enum.Parse(typeof(QQState), input); Console.WriteLine("您选择的在线状态是{0}", s4); break; case "5": QQState s5 = (QQState)Enum.Parse(typeof(QQState), input); Console.WriteLine("您选择的在线状态是{0}", s5); break; } Console.ReadKey(); } } }
相关文章推荐
- C#的枚举用法(原创)--王超C#
- Head First C# 中文版 图文皆译 第八章 枚举和集合 page378
- C# 枚举赋值篇(转载)
- c# enum用法 枚举用法 Asp.net ENUM用法
- C#实现获取枚举的描述
- C# 枚举绑定到ComboBox
- C#基础(六)--枚举的一些常用操作
- C# 枚举转集合
- [C#]C#补习——类型和操作符—PART3—枚举
- C#遍历枚举
- C#开发--枚举使用规则
- C# 枚举、字符串、值的相互转换
- 用C#制造可以继承的“枚举”
- C#中出现“集合已修改;可能无法执行枚举操作”错误 foreach list.Remove()
- 浅谈C#中的枚举
- C# 枚举
- c#枚举类型的内容全部获取和字符串转换为枚举类型的方法
- 深入理解C#中的枚举
- C#:USB设备枚举(二)设备枚举API
- [原创]C#应用WindowsApi实现查找\枚举(FindWindow、EnumChildWindows)窗体控件,并发送消息。