黑马程序员之C#学习笔记:枚举以及将字符串转换为枚举学习心得

来源:互联网 发布:ubuntu教程 pdf 编辑:程序博客网 时间:2024/05/28 05:16

------------------------------------- 2345王牌技术员联盟、2345王牌技术员联盟、期待与您交流!----------------------------------

一、枚举的理论知识

(1)定义枚举的关键字和其在程序中的位置

enum 关键字用于声明枚举,即一种由一组称为枚举数列表的命名常量组成的独特类型。通常情况下,最好是在命名空间内直接定义枚举,以便该命名空间中的所有类都能够同样方便地访问它。但是,还可以将枚举嵌套在类或结构中。


(2)枚举的作用
    A、限制用户不能随意赋值,只能定义枚举时列举的值中选择

    B、不需要死记每一个值是什么,只需选择相应的值


(3)枚举的定义格式以及其默认值

默认情况下,第一个枚举数的值为 0,后面每个枚举数的值依次递增 1。例如,下面的枚举,Sat 是 0,Sun 是 1,Mon 是 2 等.


enum Days

{

       Sat,

       Sun,

       Mon,

      Tue,

      Wed,

      Thu,

      Fri

};


又例如,定义性别常量
enum gender{男,女}

即知道枚举的定义是 (关键字enum 自己定义的枚举类型名称 {值1,值2,值3,….值n})


(4)枚举默认值的改变
如下面的示例所示枚举数可用初始值来重写默认值。

enum Days {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};


(5)枚举数据类型的转换
从 enum 类型到整型的转换需要用显式类型转换来完成。例如,下面的语句使用强制转换(从 enum 转换为 int)将枚举数 Sun 赋值给一个 int 类型的变量。

int x = (int)Days.Sun;


二、枚举在程序中
//枚举值的输出
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 枚举
{
    enum geder
    {
        男,
        女
    }
    class Program
    {
        static void Main(string[] args)
        {
            geder sex = geder.男;
            Console.WriteLine(sex);
            Console.ReadKey();
            
        }
    }
}
//枚举定义值得默认值得的输出

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 枚举
{
    enum geder
    {
        男,
        女
    }
    class Program
    {
        static void Main(string[] args)
        {
  //注意:定义枚举时,值不能是int类型,枚举类型的变量都可以强制转换成一个int类型,枚举的值在定义时是有一个默认编号的,编号从0开始,下面的就是这个例子
            geder sex = geder.男;
            Console.WriteLine((int)sex);
            Console.ReadKey();

        }
    }

}


三、字符串转换为枚举
固定的公式:(自己定义的枚举类型名称)(Enum.Parse(typeof(自己定义的枚举类型名称),“待转换的字符串”))
在程序中的运用

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 把字符串转换成枚举类型
{
    class Program
    {
        enum gender
        {
            男,
            女
        }
        static void Main(string[] args)
        {

            try
            {
                gender sex;

                Console.WriteLine("请输入你的性别");
                string s = Console.ReadLine();
                sex = (gender)(Enum.Parse(typeof(gender), s));

                Console.WriteLine("你输入的性别为:" + sex);
            }
            catch
            {
                Console.WriteLine("你输入的性别有误!");
            }

            Console.ReadKey();
        }
    }
}
枚举在swich中
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 枚举在swich中
{
    class Program
    {   enum gender
       {
        男,
        女
       }
        static void Main(string[] args)
        {
            gender sex = gender.男;
            switch (sex)
            {
                case gender.男:
                    Console.WriteLine("男性");
                    break;
                case gender.女:
                    Console.WriteLine("女性");
                    break;
            }
            Console.ReadKey();
        }
    }
}


--------------------------------------------------- 2345王牌技术员联盟、2345王牌技术员联盟、期待与您交流!---------------------------------------------------------


原创粉丝点击