zoukankan      html  css  js  c++  java
  • C#:枚举

    1. 枚举的综合运用

    public enum Color { yellow, blue, green }
    
    class Program
    {
        static void Main(string[] args)
        {
            // 1. 正常使用枚举元素
            Console.WriteLine(Color.yellow);    // 输出: yellow
    
            // 2. 通过定义变量使用枚举元素
            Color c1 = Color.blue;
            Console.WriteLine(c1);             // 输出: blue
    
            // 3. 枚举的元素实际上是“Int”,而且依次编号(增量为1)
            Console.WriteLine(Convert.ToInt32(Color.green));    // 输出2
    
            // 4. Enum.Parse()方法,根据“字符串”获取对应的枚举元素
            Color c2 = (Color)Enum.Parse(typeof(Color), "yellow", true);
            if (c2 == Color.yellow)
            {
                Console.WriteLine("Yes");   // 输出: Yes
            }
    
            // 5. 根据“下标”获取对应的字符串
            string c3 = Enum.GetName(typeof(Color), 1);
            Console.WriteLine(c3);            // 输出: blue
    
            // 6. 依次输出枚举元素(下标)
            foreach(int i in Enum.GetValues(typeof(Color)))
            {
                Console.WriteLine(i.ToString());                    // 依次输出: 1, 2, 3
                Console.WriteLine(Enum.GetName(typeof(Color), i));  // 根据“下标”获取对应字符串,依次输出: yellow, blue, green
            }
    
            // 7.依次输出枚举值对应的字符串
            foreach (string c in Enum.GetNames(typeof(Color)))
            {
                Console.WriteLine(c);      // 依次输出: yellow, blue, green
            }
        }
    }

    2. 枚举的值

    • 枚举元素不是变量,而是常数。因为是常量,所以不能对枚举元素进行赋值。
    • 枚举元素作为常量,它们是有值的,值依次递增,增量为1。
    public enum Color { yellow, blue, green }
    等同于:
    public enum Color { yellow = 0, blue = 1, green = 2 }
    public enum Color { yellow, blue = 100, green }
    等同于:
    public enum Color { yellow, blue = 100, green = 101 }

    3. Enum.Parse(enumType, value, ignoreCase)

    根据给定“字符串”获取枚举的值,返回object(使用时需要强类型转换)。

    // enumType: 枚举的 Type
    // value: 包含要转换的值或名称的字符串
    // ignoreCase: 如果为 true,则忽略大小写;否则考虑大小写
    // 返回值: enumType 类型的对象,其值由 value 表示
    public static Object Parse (
        Type enumType,
        string value,
        bool ignoreCase
    )
  • 相关阅读:
    lazyload is not a function解决方式
    APK反编译(Linux环境下)
    讲解图片压缩的文章
    startActivityForResult相关的
    把APP做成libary的注意事项
    ViewPager+Fragment,Fragment会预加载的问题
    FragmentTabHost使用注意
    使用ReTrofit做缓存(结合上拉加载和下拉刷新)
    极光推送,极光IM使用指南(AndroidStudio)
    AndroidStudio使用注意事项
  • 原文地址:https://www.cnblogs.com/rainman/p/3653098.html
Copyright © 2011-2022 走看看