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();
        }
    }
  • 相关阅读:
    文本表征:SoW、BoW、TF-IDF、Hash Trick、doc2vec、DBoW、DM
    词表征 3:GloVe、fastText、评价词向量、重新训练词向量
    词表征 2:word2vec、CBoW、Skip-Gram、Negative Sampling、Hierarchical Softmax
    词表征 1:WordNet、0-1表征、共现矩阵、SVD
    机器学习基石笔记:Homework #4 Regularization&Validation相关习题
    机器学习基石笔记:16 Three Learning Principles
    [JavaEE] 了解Java连接池
    [JavaEE] Maven简介
    [MySQL] 按日期进行统计(前一天、本周、某一天)
    [MySQL] 按年度、季度、月度、周、日统计查询
  • 原文地址:https://www.cnblogs.com/wys000/p/9590766.html
Copyright © 2011-2022 走看看