zoukankan      html  css  js  c++  java
  • 【 枚举 Enum 】循环 名称与值

     
    foreach (WeekDay c in (WeekDay [])Enum.GetValues(typeof(WeekDay )))

    {
    Console.Write(String.Format("{0}是一周第{1}天",c.ToString(),(int)c));
    }

    Hashtable Ht = new Hashtable();
            Ht.Add("January", "1月");
            Ht.Add("February", "2月");
            Ht.Add("March", "3月");
            Ht.Add("April", "4月");
            Ht.Add("May", "5月");
            Ht.Add("June", "6月");
            Ht.Add("July", "7月");
            this.DropDownList3.DataSource = Ht;
            this.DropDownList3.DataValueField = "key";
            this.DropDownList3.DataTextField = "value";
            this.DropDownList3.DataBind();

    枚举类型是一种的值类型,它用于声明一组命名的常数。
    (1)枚举的声明:枚举声明用于声明新的枚举类型。
    访问修辞符 enum 枚举名:基础类型
    {
    枚举成员
    }
    基础类型必须能够表示该枚举中定义的所有枚举数值。枚举声明可以显式地声明 bytesbyteshortushort、int、uint、longulong 类型作为对应的基础类型。没有显式地声明基础类型的枚举声明意味着所对应的基础类型是 int。
    (2)枚举成员
    枚举成员是该枚举类型的命名常数。任意两个枚举成员不能具有相同的名称。每个枚举成员均具有相关联的常数值。此值的类型就是枚举的基础类型。每个枚举成员的常数值必须在该枚举的基础类型的范围之内。
    示例:
    public enum TimeofDay:uint
    {
    Morning=-3,
    Afternoon=-2,
    Evening=-1
    }
    产生编译时错误,原因是常数值 -1、-2 和 –3 不在基础整型 uint 的范围内。
    (3)枚举成员默认值
    在枚举类型中声明的第一个枚举成员它的默值为零。
    以后的枚举成员值是将前一个枚举成员(按照文本顺序)的值加 1 得到的。这样增加后的值必须在该基础类型可表示的值的范围内;否则,会出现编译时错误。
    示例:
    public enum TimeofDay:uint
    {
    Morning,
    Afternoon,
    Evening
    }
    Morning的值为0,Afternoon的值为1,Evening的值为2。
    (4)为枚举成员显示赋值
    允许多个枚举成员有相同的值.
    没有显示赋值的枚举成员的值,总是前一个枚举成员的值+1.
    示例
    public enum Number
    {
    a=1,
    b,
    c=1,
    d
    }
    b的值为2,d的值为2.
    注意:以上枚举值都不能超过它的基础类型范围。否则会报错.
    (5)枚举类型与基础类型的转换
    基础类型不能隐式转换为枚举类型
    枚举类型也不能隐式转换为基础类型
    示例:
    public enum Number
    {
    a,
    b,
    c,
    d
    }
    class Test
    {
    public static void Main()
    {
    int i=Number.a;//错误,要强制类型转换(int)Number.a
    Number n;
    n=2 //错误,要强制类型转换(Number)2
    }
    }
    (6)System.Enum类型
    System.Enum 类型是所有枚举类型的抽象基类,并且从 System.Enum 继承的成员在任何枚举类型中都可用。
    System.Enum 本身不是枚举类型。相反,它是一个类类型,所有枚举类型都是从它派生的。
    System.Enum 从类型 System.ValueType派生
    (7)使用枚举类型
    using System;
    public enum TimeofDay
    {
    Morning,
    Afternoon,
    Evening
    }
    
    class Test
    {
    static void WriteGreeting(TimeofDay timeofDay)
    {
    switch(timeofDay)
    {
    case TimeofDay.Morning:
    Console.WriteLine("good morning");
    break;
    case TimeofDay.Afternoon:
    Console.WriteLine("good afternoon");
    break;
    case TimeofDay.Evening:
    Console.WriteLine("good evening");
    break;
    }
    }
    static void Main()
    {
    WriteGreeting(TimeofDay.Morning);
    WriteGreeting(TimeofDay.Evening);
    WriteGreeting(TimeofDay.Afternoon);
    }
    }
    
    (8)枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。
    
    (9) 可以获取枚举的字符串表示,还可以从字符串中获取枚举值。
    
    一下代码通过编译:
    
    using System;
    namespace ConsoleApplication2
    {
       //定义枚举
        public enum TimeofDay
        {
            Morning,
            Afternoon,
            Evening
        }
        //访问枚举成员
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine(GotString(TimeofDay.Afternoon));
                Console.WriteLine(GotValue("Afternoon"));
            }
            //获取枚举的字符串表示
            static string GotString(TimeofDay timeOfDay)
            {
                TimeofDay time = timeOfDay;
                return time.ToString();
            }
            //从字符串获取枚举值并转换为整数
            static int GotValue(string s)
            {
                TimeofDay time = (TimeofDay)Enum.Parse(typeof(TimeofDay),s,true);
                return (int)time;
            }
           
        }
    }
    
       补充实例:
    
    namespace 枚举
    {
        public enum TimeofDay
        {
            Morning,
            Afternoon,
            Evening
    
        }
        class Program
        {
            static void Main(string[] args)
            {
                //获取枚举中枚举成员的值
                int i = (int)TimeofDay.Afternoon;
                Console.WriteLine(i);
                //获取枚举成员的成员名的字符串表示
                string s = TimeofDay.Afternoon.ToString();
                Console.WriteLine(s);
                //已知成员名的字符串表示,获取其整型值
                //先从字符串转换为枚举
                string ss = "Morning";
                TimeofDay td =(TimeofDay)Enum.Parse(typeof(TimeofDay),ss);
                Console.WriteLine((int)td);
            }
        }
    }
  • 相关阅读:
    Eclipse中安装Tomcat
    Merge Query
    如何生成Java Key以及sign一个jar
    Create MSSQL Procedure
    MSSQL Procudure Sample
    MSSQL Get Last Monday and Last Sunday
    oracle Data blocks,Extents,Segments
    Oracle Index Clustering Factor(集群因子)
    mapreduce工作原理
    python 实现一个TwoSum的例子
  • 原文地址:https://www.cnblogs.com/cpugege/p/4062979.html
Copyright © 2011-2022 走看看