zoukankan      html  css  js  c++  java
  • C#枚举Enum[轉]

    枚举是一个指定的常数,其基础类型可以是除 Char 外的任何整型。
    如果没有显式声明基础类型,则使用 Int32。
    编程语言通常提供语法来声明由一组已命名的常数和它们的值组成的枚举。
    定义默认基数从O开始,也可指定数值。

    範例一:

    enum Days { Saturday=1, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday };
    enum Colors { Red = 1, Green = 2, Blue = 4, Yellow = 8 };
    
    Colors myColors = Colors.Red;
    string strColor=myColors.tostring();
    int    IntColor=(int)myColors ; 
    //位或
    Colors myColors = Colors.Red | Colors.Blue | Colors.Yellow;
    //位与
    Colors myColors = Colors.Red & Colors.Blue & Colors.Yellow;
    //遍历 
    foreach (string s in Enum.GetNames(typeof(Days)))
      Response.Write(s + "--" + Enum.Parse(typeof(Days), s).ToString());
    //转换
    Colors mc=Colors Enum.Parse(typeof(Colors ), "red"); 
     if (System.Enum.IsDefined(typeof(Days), "Monday"))
       Days ds= (Days)Enum.Parse(typeof(Days), "Monday");

    範例二:

    public enum NoticeType
    {
            Notice = 'A',
            LabRule = 'H',
            HotInformation = 'N',
            Column = 'C',
            All = '1',
            Null = '0'
    }
    //新建枚举类型
    NoticeType noticeType1 = NoticeType.Column;
    
    //把枚举类型转换为string d="Column"
    string d = noticeType1.ToString();
    
    //取得枚举类型的基数 dd='C'
    char dd = (char)noticeType1;
    
    //通过基数取得对应的枚举类型 noticeType2 = NoticeType.Notice
    //(NoticeType)'A';  两种方式都可以
    NoticeType noticeType2 = (NoticeType)Char.Parse("A"); 
    
    //通过名称取得枚举类型 noticeType3 = NoticeType.Notice
    NoticeType noticeType3 = (NoticeType)Enum.Parse(typeof(NoticeType), "Notice");

    获得文字描述:

    using System.ComponentModel; // 先添加该引用
    enum Direction
    {
        [Description("this means facing to UP (Negtive Y)")]
        UP = 1,
        [Description("this means facing to RIGHT (Positive X)")]
        RIGHT = 2,
        [Description("this means facing to DOWN (Positive Y)")]
        DOWN = 3,
        [Description("this means facing to LEFT (Negtive X)")]
        LEFT = 4
    };
    
    //使用如下方法来获得文字描述:
    using System.Reflection;
    using System.ComponentModel;
    public static String GetEnumDesc(Direction e)
    {
        FieldInfo EnumInfo = e.GetType().GetField(e.ToString());
        DescriptionAttribute[] EnumAttributes = (DescriptionAttribute[]) EnumInfo.
            GetCustomAttributes (typeof(DescriptionAttribute), false);
        if (EnumAttributes.Length > 0)
        {
            return EnumAttributes[0].Description;
        }
        return e.ToString();
    }
  • 相关阅读:
    js数组直接赋值会导致一个数组改变,另一个数组会随之改变(解决办法)
    css兼容性问题
    12种CSS BUG解决方法与技巧
    js的运算小数点的问题
    DataTable相关操作,筛选,取前N条数据,去重复行,获取指定列数据
    js得到区域长宽
    DataView.RowFilter筛选DataTable中的数据
    图片加载问题
    kissy延迟加载demo
    解决css兼容性
  • 原文地址:https://www.cnblogs.com/ywkpl/p/8191617.html
Copyright © 2011-2022 走看看