先定义一个枚举类型

public enum PropertyType { 小学 = , 初中, 高中,大学 };

int ->enum

int d=2;

PropertyType  a=(PropertyType)d;

int <- enum

PropertyType  d = PropertyType.小学;

int a = Convert.ToInt32(d);

Enum类有关的方法

Enum.Parse 方法 (Type, String)

将一个或多个枚举常数的名称或数字值的字符串表示转换成等效的枚举对象。


public static Object Parse(
Type enumType,
string value
) 参数
enumType类型:System.Type
枚举类型。

value类型:System.String
包含要转换的值或名称的字符串。 返回值
类型:System.Object
enumType 类型的对象,其值由 value 表示。
 

如果我们有两个enum,

1 public enum Colors {Red, Green, Blue}
2  
3 public enum BgColors {Red, Black, Green, Blue }

看起來差不多。

有一天有需要把一个变成另一个來用。可能会写成这样:

1 Colors font_color = Colors.Blue;
2 BgColor bg = (BgColor)font_color;

看起來可以,编译也对。但实际上是不對的,因为实际上是转成enum所代表的int,对应的結果往往不是我们想要的。

正确的作法是

1 Colors font_color = Colors.Blue;
2 (BgColor)Enum.Parse(typeof(BgColor), font_color.ToString());

这是一种很简单的理念,但常常写成上面的写法。但日后如果其中之一有变,造成顺序有更改的話,就会出现错误。

Enum.GetName 方法

指定枚举中检索具有指定值的常数的名称。

public static string GetName(
Type enumType,
Object value
) enumType
类型:System.Type
枚举类型。 value
类型:System.Object
特定枚举常数的值(根据其基础类型)。 返回值
类型:System.String
一个字符串,其中包含 enumType 中值为 value 的枚举常数的名称;如果没有找到这样的常数,则为 null。

Enum.GetNames 方法

检索指定枚举中常数名称的数组。

public static string[] GetNames(
Type enumType
) 参数
enumType
类型:System.Type
枚举类型。 返回值
类型:System.String[]
enumType 的常数名称的字符串数组。

C#中枚举类型和int类型的转化的更多相关文章

  1. C#枚举类型和int类型相互转换

    C#枚举类型和int类型相互转换 C# 枚举(Enum) 枚举是一组命名整型常量.枚举类型是使用 enum 关键字声明的. C# 枚举是值数据类型.换句话说,枚举包含自己的值,且不能继承或传递继承. ...

  2. mysql中Numeric类型和int类型的区别

    首先记一下,Numeric数字数据只包含 数字.数字数据包括正数.负数.小数.分数和整数 例子如下: Numeric(6,2) Numeric(16,6) Numeric(16,0) 从左到右,第一个 ...

  3. 关于 Go 中 Map 类型和 Slice 类型的传递

    关于 Go 中 Map 类型和 Slice 类型的传递 Map 类型 先看例子 m1: func main() { m := make(map[int]int) mdMap(m) fmt.Printl ...

  4. Python3.x中bytes类型和str类型深入分析

    Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分.文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示.Python 3不会以任意隐式的方式混用str和b ...

  5. Timestame类型和String 类型的转化

    Timestame类型和String 类型的转化 String转化为Timestamp: SimpleDateFormat df = new SimpleDateFormat("yyyy-M ...

  6. java中XMLGregorianCalendar类型和Date类型之间的相互转换

    import java.text.SimpleDateFormat;import java.util.Date;import java.util.GregorianCalendar;import ja ...

  7. js中Boolean类型和Number类型的一些常见方法

    Boolean类型 Boolean类型重写了valueOf() 方法, 返回基本布尔类型值true或false,重写了toString() 方法,返回基本字符串"true" 和 & ...

  8. char类型和int类型之间的转换

    在视屏课程第二章里,我们已经学习了一些常用的数据类型转换.然而,有一些时候我们会经常会遇到将char类型转换成int类型,或者需要将int类型转换为char类型的情况. 这里,我们来探讨一下这种不常用 ...

  9. string类型和int类型之间的转换

    一.string转int 1. 使用string流 /* 字符串转整型 */ /* * istringstream:从 string 读取数据 * ostringstream:向 string 写入数 ...

随机推荐

  1. 解决Ubuntu 14.04 下SMPlayer的字幕乱码问题

    1.SMPlayer播放器 对于使用ubuntu系统的同学,虽然系统初始就带有vedio播放器,但是这里强烈推荐SMPlayer,直接在Ubuntu Software Center中就可以免费下载安装 ...

  2. python实现登录函数,比较简单

    一个简单的python实现登录以及修改密码的函数 #密码错误3次,锁定登录: password_list = ['] def account_login(): Tries = 3 while Trie ...

  3. Bernese安装及使用

    一.安装: 伯尔尼软件的安装很简单,但是在64位下,可能perl解释器安装不成功,我找了一个,并且可用,下载地址: 链接:http://pan.baidu.com/s/1hr8fgEC 密码:fj8b ...

  4. 一位ACM过来人的心得

    刻苦的训练我打算最后稍微提一下.主要说后者:什么是有效地训练? 我想说下我的理解. 很多ACMer入门的时候,都被告知:要多做题,做个500多道就变牛了.其实,这既不是充分条件.也不会是必要条件. 我 ...

  5. js 终止页面加载

    var xmlhttp = new XMLHttpRequest(); xmlhttp.abort(); window.stop();

  6. javascript之attribute 和 property

    首先看看这两个单词的英文释义(来自有道词典).先是property: property ['prɔpəti] n. 性质,性能:财产:所有权 英英释义: any area set aside for ...

  7. 导出页面文档(只在IE8下测试过)

    之前说过一篇关于打印的方法,就顺便也看了一下导出,但是该方法需要用户更改浏览器的安全级别设置,因此并不十分推荐,大家如真有需要可以参考一下ZeroClipboard这款插件,我有时间也会去学习一下并贴 ...

  8. JS动态加载 js css

    1.动态加载js function loadScript( url ){ var script = document.createElement( "script" ); scri ...

  9. Nginx源码研究六:NGINX的配置文件分析

    上一篇写到nginx的各个模块的配置信息的存储结构,大体描述了对配置信息的配置项生成,定制,初始化过程.这里重点研究实现定制的过程,所谓实现定制,这里指的是,nginx系统提供使用者定义nginx的配 ...

  10. uva10561 - Treblecross

    Treblecross is a two player game where the goal is to get three `X' in a row on a one-dimensional bo ...