当前位置: 移动技术网 > IT编程>开发语言>c# > C# 枚举

C# 枚举

2019年11月03日  | 移动技术网IT编程  | 我要评论

一、简介

枚举是一组命名整型常量;枚举类型是使用 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 "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();
}
}
}    

  

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网