• 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
    )
  • 相关阅读:
    Delphi映射模式实验
    restTemplate工具类
    RestTemplate中几种常见的请求方式
    RestTemplate(一)
    java.util.NoSuchElementException: No value present
    使用jsonRpc进行远程调用的时候com.googlecode.jsonrpc4j.HttpException: stream is closed
    SLF4J: Class path contains multiple SLF4J bindings.警告解决
    如何更改自己博客(博客园的)的背景
    Django中扩展Paginator实现分页
    bootstrap 导航栏
  • 原文地址:https://www.cnblogs.com/rainman/p/3653098.html
Copyright © 2020-2023  润新知