枚举类型转换

转载 2015年11月17日 17:18:28

语法:
[public] enum 枚举名
{
值1,
值2,
值3,
……..
}
public:访问修饰符。公开的公共的,哪都可以访问。
enum:关键字,声明枚举的关键字
枚举名:要符合Pascal命名规范

将枚举声明到命名空间的下面,类的外面,表示这个命名空间下,所有的类都可以使用这个枚举。

枚举就是一个变量类型 ,int–double string decimal.
只是枚举声明、赋值、使用的方式跟那些普通的变量类型不一样。

我们可以将一个枚举类型的变量跟int类型和string类型互相转换。
枚举类型默认是跟int类型相互兼容的,所以可以通过强制类型转换的语法互相转换。
当转换一个枚举中没有的值的时候,不会抛异常,而是直接将数字显示出来。

枚举同样也可以跟string类型互相转换,如果将枚举类型转换成string类型,则直接调用ToString().
如果将字符串转换成枚举类型则需要下面这样一行代码:
(要转换的枚举类型)Enum.Parse(typeof(要转换的枚举类型),”要转换的字符串”);
如果转换的字符串是数字,则就算枚举中没有,也会不会抛异常。
如果转换的字符串是文本,如果枚举中没有,则会抛出异常。
实例:

namespace @enum
{
    public enum QQState
    {
        onLine=1,
        offLine,
        yingshen


    }
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请选择你的状态:1-on 2-off 3-yingshen");
           string n= Console.ReadLine();

           switch (n)
           {
               case "1":QQState s=(QQState)Enum.Parse(typeof(QQState),n);
                   Console.WriteLine("你的状态是{0}",s);
                   break;
               case "2": QQState s1 = (QQState)Enum.Parse(typeof(QQState), n);
                   Console.WriteLine("你的状态是{0}", s1);
                   break;
               case "3": QQState s2 = (QQState)Enum.Parse(typeof(QQState), n);
                   Console.WriteLine("你的状态是{0}", s2);
                   break;
           }
           Console.ReadKey();


        }
    }
}

c++中的四大类型强转

C++的四种强制转换         C++中的四种转换,是一个老生常谈的话题。但是对于初学者来说,该如何选择哪种转换方式仍然会有点困惑。而且我总是觉得“纸上得来终觉浅”,于是便“绝知此事要躬行...
  • huai1693838234
  • huai1693838234
  • 2015年03月27日 09:18
  • 1360

【C#语法】C#中强转和as、is的区别

C#是一门强类型语言,一般情况下最好避免将一个类型转换成另一个类型,但是有些时候又不得不进行类型转换。 C#中有三种类型转换(不考虑.Net提供的Parse),如下: 1、使用as操作符转换 2、使用...
  • lzhui1987
  • lzhui1987
  • 2016年04月24日 18:26
  • 978

关于子类到父类强转的问题记录(学习整理)

代码: //父类 public class Father { protected String name="父亲属性"; public void method() { System...
  • ZGq2010
  • ZGq2010
  • 2014年01月27日 09:16
  • 702

Swift 学习之二十:类型强转(+、-、*、/)

Swift 学习之二十:类型强转(+、-、*、/)
  • qq_33777090
  • qq_33777090
  • 2016年06月16日 16:35
  • 221

Android Context与接口的强制类型转换问题

昨天在开发过程中遇到一个问题,困扰了很长时间,并且直到现在
  • u010665691
  • u010665691
  • 2014年11月04日 15:00
  • 2124

类型强转和地址强转

1 例子      最近在干一个很复杂的事—读4w多行的项目源码,头都大了有木有!其中有一步是加载一个二进制文件,为了更好的理解代码的含义,我需要一点一点解析二进制文件。在解析到某个位置的时候,有个...
  • yutianzuijin
  • yutianzuijin
  • 2014年10月19日 19:41
  • 3013

Swift 学习之二十:类型强转(+、-、*、/)

OperatorForceTransfer.swift: // // OperatorForceTransfer.swift // FormatForceTransfer // // Crea...
  • woaifen3344
  • woaifen3344
  • 2014年06月11日 09:25
  • 2050

关于java List的强制转型的理解

背景: 之前对于涉及到List的强制转型的理解是:      List personList = (List) list;  他会检测list中的每一项,如果其中包括非Person类或其子类的就...
  • weiweiwei256
  • weiweiwei256
  • 2016年05月18日 11:01
  • 1033

Swift入门(十一)——类型转换与is、as操作

三种操作:is、as?和as!Swift是强类型语言,但也允许开发者通过is、as?和as!这三种操作来对类型进行判断和强制转换。其中is用作类型判断,而as?和as!则分别是类型转换的可选形式和强制...
  • abc649395594
  • abc649395594
  • 2015年08月29日 00:45
  • 2443

null 为什么可以被转换成任意引用类型?

当我们看到下述代码是可能会感到奇怪,我在完成我的第一个项目的时候就遇到过这个问题。我在centlingZiller(公司一个内部的系统,可以查看代码的diff,comment) 上看到一个同事(哈哈哈...
  • hansc123
  • hansc123
  • 2016年01月22日 14:00
  • 972
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:枚举类型转换
举报原因:
原因补充:

(最多只允许输入30个字)