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();
    }
  • 相关阅读:
    我们在期待什么?
    ASP.NET的本质–IIS以及进程模式
    javascript开发中要注意的事情
    通过配置web.config发电子邮件详解
    VS2005 中文版下载
    td自动换行CSS
    巧妙利用图片IMG的onerror事件
    网页 页面不缓存
    JS检测对像(支持多版本)
    利用js预缓存图片
  • 原文地址:https://www.cnblogs.com/ywkpl/p/8191617.html
Copyright © 2011-2022 走看看