zoukankan      html  css  js  c++  java
  • c#枚举(Enum)

    C# 枚举学习需要注意:
    System.Enum 类型是所有枚举类型的抽象基类(它是一种与枚举类型的基础类型不同的独特类型),并且从 System.Enum 继承的成员在任何枚举类型中都可用。存在从任何枚举类型到System.Enum 的装箱转换,并且存在从 System.Enum 到任何枚举类型的取消装箱转换。System.Enum 本身不是枚举类型。相反,它是一个类类型,所有枚举类型都是从它派生的。类型 System.Enum 从类型 System.ValueType派生,而后者又从类型 object 派生。在运行时,类型 System.Enum 的值可以是 null 或是对任何枚举类型的装了箱的值的引用。
    C# 枚举的优点:
    枚举可以使代码更易于维护,有助于确保给变量指定合法的、期望的值。
    枚举使代码更清晰,允许用描述性的名称表示整数值,而不是用含义模糊的数来表示。
    枚举使代码更易于键入。在给枚举类型的实例赋值时,VS.NET IDE会通过IntelliSense弹出一个包含可接受值的列表框,减少了按键次数,并能够让我们回忆起可能的值
     
    C# 枚举的常用方法:
    Enum.Parse()方法
    这个方法带3个参数,第一个参数是要使用的枚举类型。其语法是关键字typeof后跟放在括号中的枚举类名。第二个参数是要转换的字符串,第三个参数是一个bool,指定在进行转换时是否忽略大小写,最后,注意Enum.Parse()方法实际上返回一个对象引用—— 我们需要把这个字符串显式转换为需要的枚举类型(这是一个取消装箱操作的例子)
    Enum.GetName()方法 获得枚举某一个值的对应名称
    Enum.GetValues()方法 得到枚举的所有的值
    Enum.GetNames(typeof(枚举名称))获取枚举所有的名称
     
    foreach(string temp in Enum.GetNames(typeof(UIName)))
    {
    }
    for (int i = 0; i < Enum.GetNames(typeof(UIName)).Length; i++)
    {
    }
    //简例
    using System;
    public class ParseTest
    {
        enum Colors
        {
            red = 1,
            Green = 2,
            Blue = 4,
            Yellow = 8
        };
    
        public static void Main()
        {
    
            foreach (string colorName in Enum.GetNames(typeof(Colors)))
            {
                Console.WriteLine("{0}={1}", colorName,
                Convert.ToInt32(Enum.Parse(typeof(Colors), colorName)));
            }
    
            Console.WriteLine();
    
            Colors myOrange = (Colors)Enum.Parse(typeof(Colors),"red");//一个枚举myOrange=名称、多个枚举myOrange=多个枚举数字值相加
    
            Console.WriteLine("没有Int转换:{0}
    经过Int转换:{1}", myOrange, Convert.ToInt64(myOrange));
    
            Console.ReadLine();
        }
    }
  • 相关阅读:
    oracle的 listagg() WITHIN GROUP () 行转列函数的使用
    redis-配置文件详解
    Redis下载安装步骤及操作命令
    探索linux好玩的东西
    发送邮件的工具类
    微信小程序 云开发天然鉴权获取手机号
    JS 设计模式 -代理模式
    语言之魂——原型模式
    微信小程序 云开发中部分用户获取不到unionId
    js封装三级联动
  • 原文地址:https://www.cnblogs.com/wys000/p/9590766.html
Copyright © 2011-2022 走看看