A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张怀晶 中级黑马   /  2013-3-19 18:18  /  1982 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

什么类型可以转换为枚举类型,是怎么转换的,枚举类型主要用在哪些地方呢?

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

4 个回复

正序浏览
    class Program
    {
        static void Main(string[] args)
        {      
            Console.WriteLine(color.red);//输出"red"
            //将字符串转换为枚举类型
            color red = (color)Enum.Parse(typeof(color),"red");
            Console.WriteLine(red);//输出
            //将数字1转换为color类型的枚举变量
            color yellow= (color)Enum.Parse(typeof(color),"1");
            Console.WriteLine(yellow);//输出yellow
            //将枚举类型转换为数字
            int n = Convert.ToInt32(color.red);
            Console.WriteLine(n);//输出0
            Console.ReadKey();
        }
    }
    //定义一个color枚举
    public enum color { red,yellow,blue}

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
只要是实例个数固定 就可以定义成枚举,比如说方向(东南西北),比如性别(男女),国籍()等,可以防止用户使用任意输入的值或者创建任意对象
因为枚举其实是一个构造函数私有,实例个数固定的一个类,所以外部无法自己创建实例,只能通过类名.实例名的方法使用枚举类中预先定义好的实例变量
首先给你一个自己写的枚举类
  1. public abstract class Day {
  2.        
  3.         private Day() {
  4.         }
  5. /**
  6. * 采用抽象类将大量的ifelse转换成一个个的独立的类
  7. */
  8.                 public static final Day monday = new Day(){
  9.                         @Override
  10.                         public Day nextDay() {
  11.                                 return thusday;
  12.                         }
  13.                 };
  14.                 public static final Day thusday = new Day(){
  15.                         @Override
  16.                         public Day nextDay() {
  17.                                 return null;
  18.                         }
  19.                 }
  20.         public Day getDay()
  21.         {
  22.                 if(this == monday)
  23.                 {
  24.                         return monday;
  25.                 }else
  26.                 {
  27.                         return thusday;       
  28.                 }
  29.         }
  30.         public String toString()
  31.         {
  32.                 return null;
  33.         }
  34.         public abstract Day nextDay();
  35. }
复制代码
这个是关于天数的枚举
  1. public enum WeekDay1 {

  2.                 SUN,MON,TUS,WED,THIR,FRI,SAT;
  3.                 private WeekDay1()
  4.                 {
  5.                 System.out.println("first");       
  6.                 }
  7.                 private WeekDay1(int a)
  8.                 {
  9.                 System.out.println(a);       
  10.                 }
  11.         }
复制代码
这个是枚举,从这我们可以看出枚举简化了我们创建类的步骤并减少了代码

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报

字符串类型 的可以转换为枚举类型, 定义枚举时,值不能是int类型
枚举类型的变量都可以强制转换成一个int类型
将一个字符串转换成枚举类型:
(自枚)(Enum.Parse(typeof(自枚),“待转字符串“));//自枚是指自己定义  的枚举类型

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
1. 确定数量,确定值的几个取值:东南西北,男女,上中下;
2。enum Gender{ male, femal}
     enum QQStatus{online, offline, hidden}
3. 枚举的用法: QQStatus status =QQStatus.online;
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马