C#什么是枚举类型,枚举类型的转换

枚举

语法:

[public] enum 枚举名
{
值1,
值2,
值3,
............ 
} 

public:访问修饰符。公开的公共的,哪都可以访问。
enum:关键字,声明枚举的关键字
枚举名:要符合pascal命名规范。
    
将枚举声明到命名空间下面,类的外面。表示这个命名空间下,所有的类都可以使用这个枚举。
枚举就是一个简单的变量类型,只是枚举声明、赋值、使用的方式跟那些普通的变量类型不一样。
using System;
using System.Reflection.Metadata.Ecma335;

namespace ConsoleApp1
{
    class Program
    {
        public enum  Gender
        {,}
        
        public enum Seasons
        {,,,}

        public enum QQstate
        {
            OnLine,
            OffLine,
            Leave,
            Busy,
            QMe
        }
        static void Main(string[] args)
        {
            Gender gender = Gender.;
            Seasons c = Seasons.;
            Seasons x = Seasons.;
            QQstate on = QQstate.OnLine;
            QQstate off = QQstate.OffLine;
            
            //类型转换 枚举转int
            //枚举类型默认可以跟int类型互相转换  枚举类型跟int类型事兼容的
            int n = (int)on;
            Console.WriteLine(n);//输出结果为0
            Console.WriteLine((int)QQstate.OffLine);//输出结果为1
            Console.WriteLine((int)QQstate.Leave);//输出结果为2
            Console.WriteLine((int)QQstate.Busy);//输出结果为3
            Console.WriteLine((int)QQstate.QMe);//输出结果为4
            
            //int转枚举
            int n1 = 3;
            QQstate state = (QQstate)n1;
            Console.WriteLine(state);//排序第3位为Busy,所以输出Busy  当n1大于枚举里最大数,输出n1
            
            //int 转 string
            int n2 = 10;
            string s = n2.ToString();
            Console.WriteLine(s);
            //枚举转string
            QQstate state1 = QQstate.OnLine;
            string s1 = state1.ToString();
            Console.WriteLine(s1);
            
            //string转枚举
            string s2 = "0";
            //调用Parse()方法的目的就是为了让它帮助我们将一个字符串转换成对应的枚举类型
            QQstate state2 = (QQstate)Enum.Parse(typeof(QQstate), s2);//需要的参数 :第一个参数就是获得你要转换成的类型,第二个参数是你要转的是哪一个字符串。  最前面再次强调你要转的是谁
            Console.WriteLine(state2);
            
        }
    }
}

总结

我们可以将一个枚举类型的变量跟int类型和string类型互相转换。
枚举类型默认是跟int类型相互兼容的,所以可以通过强制类型转换的语法互相转换。
当转换一个枚举中没有的值的时候,不回抛异常,而是直接将数字显示出来。

枚举同样也可以跟string类型互相转换,如果将枚举类型转换成string类型,则直接调用ToString()。
如果将字符串转换成枚举类型则需要下面这样一行代码:
(要转换的枚举类型)Enum.Parse(typeof(要转换的枚举类型),"要转换的字符串");
如果转换的字符串是数字,就算枚举中没有,也不会抛异常。
如果转换的字符串是文本,如果枚举中没有,则会抛出异常。

所有类型都能转换成string类型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值