C#枚举遍历、枚举值转换--Enum

本次练习在Unity工程中实现。

C#遍历枚举遍历

C#遍历枚举的方法如下:

枚举可用来存储字符串与数字的值对,相当于一个对照表

常用方法:GetName(),GetValue(),Parse()

头文件:using System;

 

  /// <summary>
    /// 枚举星期
    /// </summary>
    public enum Weekdays { Saturday, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday };

    /// <summary>
    /// 遍历枚举
     访法一
    /// </summary>
    private void ergodicEnum1()
    {
        Debug.Log("-------------------------------------------------------------------");

        foreach (int myday in Enum.GetValues(typeof(Weekdays)))
        {
            /// 枚举名字
            string name = Enum.GetName(typeof(Weekdays), myday);
            /// 枚举的值
            int value = myday;

            Debug.Log(string.Format("名字 = {0},值 = {1}", name, myday));
        }

        Debug.Log("-------------------------------------------------------------------");
    }

    /// <summary>
    /// 枚举颜色
    /// </summary>
    public enum Colors { Red = 1, Green = 2, Blue = 4, Yellow = 8 };
     
    /// <summary>
    /// 遍历枚举
     访法二
    /// </summary>
    private void ergodicEnum2()
    {
        Type color = typeof(Colors);

        Debug.Log("-------------------------------------------------------------------");

        foreach (string c in Enum.GetNames(color))
        {
            Debug.Log(string.Format("{0,-11}= {1}",c, Enum.Format(color, Enum.Parse(color, c), "d")));
        }

        Debug.Log("-------------------------------------------------------------------");

        foreach (string c in Enum.GetNames(typeof(Colors)))
        {
            Debug.Log(string.Format("{0,-11}= {1}", c, Enum.Format(color, Enum.Parse(color, c), "d")));
        }

        Debug.Log("-------------------------------------------------------------------");

        Colors myColors = Colors.Red | Colors.Green | Colors.Blue | Colors.Yellow;
        Debug.Log(string.Format("myColors holds a combination of colors. Namely: {0}", myColors));

        Debug.Log("-------------------------------------------------------------------");
    }

 

枚举值转换(字符串转换为枚举和整数转换为枚举)

 

    //假设定义了一个这样的枚举类型:
    enum MyEnum
    {
        aa = 1,
        bb = 2
    }

    ///---------------------1、字符串转换为枚举:
    /// <summary>
    /// 字符串转换为枚举:
    /// </summary>
    public void Test1()
    {
        string strA = "aa";
        MyEnum myEnum = (MyEnum)Enum.Parse(typeof(MyEnum), strA);
    }

    /// <summary>
    /// 字符串转换为枚举:
    /// 上面的 Test1 方法是区分大小写的,也就是说,如果strA的值为“AA”,则转换失败;如果不需要区分大小写,需要使用下面的方法:
    /// </summary>
    public void Test2()
    {
        string strA = "aa";
        //当最后一个参数设置为true时忽略大小写
        MyEnum myEnum = (MyEnum)Enum.Parse(typeof(MyEnum), strA, true);
    }
    ///---------------------2、整数转换为枚举值
    /// <summary>
    /// 整数转换为枚举值
    /// 这种方法可以将一个整数转换为枚举类型;如果iA不是一个有效的枚举值,则转换失败。
    /// </summary>
    public void Test3()
    {
        int iA = 2;
        MyEnum myEnum = (MyEnum)iA;
    }

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值