• C#中的四种类型转换


    第一种类型转换:将枚举类型强转为int类型

    using System;
    
    namespace 类型转换
    {
        public enum QQState
        {
            OnLine,
            OffLine,
            Leave,
            Busy,
            QMe
        }
        class Program
        {
            static void Main(string[] args)
            {
                QQState state = QQState.OnLine;
                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();
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    在这里插入图片描述
    第二种类型转换:将int类型强转为枚举类型

    using System;
    
    namespace 类型转换
    {
        public enum QQState
        {
            OnLine,
            OffLine,
            Leave,
            Busy,
            QMe
        }
        class Program
        {
            static void Main(string[] args)
            {
                int n1 = 0;
                QQState state = (QQState)n1;
                Console.WriteLine(state);
                Console.ReadKey();
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    在这里插入图片描述
    如果把n1改成8,此时注意结果:
    在这里插入图片描述
    第三种类型转换:所有的类型都能转换成字符串类型,如(int、double、decimal等)

    using System;
    
    namespace 类型转换
    {
        class Program
        {
            static void Main(string[] args)
            {
                int n1 = 10;
                //double n1 = 3.14;
                //decimal n1 = 5000m;
                string s = n1.ToString();
                Console.WriteLine(s);
                Console.ReadKey();
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    在这里插入图片描述
    在这里特别讲下:将枚举类型转换成字符串类型

    using System;
    
    namespace 类型转换
    {
        public enum QQState
        {
            OnLine,
            OffLine,
            Leave,
            Busy,
            QMe
        }
        class Program
        {
            static void Main(string[] args)
            {
                QQState state = QQState.OnLine;
    
                String s = state.ToString();
                Console.WriteLine(s);
                Console.ReadKey();
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    在这里插入图片描述
    第四种类型转换:字符串也可以转换成int、double、decimal等类型
    在这里特别讲下:将字符串转换成枚举类型

    using System;
    
    namespace 类型转换
    {
        public enum QQState
        {
            OnLine,
            OffLine,
            Leave,
            Busy,
            QMe
        }
        class Program
        {
            static void Main(string[] args)
            {
                string s = "0";
                //将s转换成枚举类型
                //调用Parse()方法的目的就是为了让它帮助我们将一个字符串转换成对应的枚举类型
                QQState state = (QQState)Enum.Parse(typeof(QQState), s);
                Console.WriteLine(state);
                Console.ReadKey();
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    在这里插入图片描述
    如果把s改成"8"或"OnLine"或"OffLine"或"ABCD",此时注意结果:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    我们可以将一个枚举类型的变量跟int类型和string类型相互转换。
    枚举类型默认是跟int类型相互兼容的,所以可以通过强制类型转换的语法相互转换。
    当转换一个枚举中没有的值的时候,不会抛异常,而是直接将数字显示出来。

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

  • 相关阅读:
    逐次变分模态分解(Sequential Variational Mode Decomposition,SVMD)(附代码)
    json-server -v 文件名、目录名或卷标语法不正确。
    walmart沃尔玛美海淘攻,2024最新版walmart海淘教程
    都3年测试经验了,用例设计还不知道状态迁移法?
    解决gogs勾选“使用选定的文件和模板初始化仓库”报错500,gogs邮件发送失败,gogs邮件配置不生效,gogs自定义模板等问题
    计算机毕业设计ssm+vue基本微信小程序的体检预约小程序
    Nacos单机配置集群配置
    docker compose 使用
    vivado FFT IP仿真(3)FFT IP选项说明
    图像任务知识蒸馏调研(一)
  • 原文地址:https://blog.csdn.net/AKK188888881/article/details/126181658