如何把一个int值转换成c 枚举 int 转换类型

怎么把int转成枚举_c#吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:98,064贴子:
怎么把int转成枚举收藏
正常方法是(AA)1 这样强转现在我用反射取到了枚举类型的对象想给他赋值但是只能取到他的type
怎么把值赋值给他?
if (memberType.BaseType == typeof(Enum))
ui培训哪个好,0基础+双证+实战「就业无忧」
Enum本来就有转换的静态方法,查msdn
public static void Main(string[] args)
int a = 2;
var v = (EnumList.ProductState)a;
int b = (int)v;
Console.WriteLine(v.ToString());
Console.WriteLine(b.ToString());
Console.ReadLine();
public class EnumList
public enum ProductState
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或[ASP.net教程]C# Enum,Int,String的互相转换
你的位置:
[ASP.net教程]C# Enum,Int,String的互相转换
Enum为枚举提供基类,其基础类型可以是除 Char 外的任何整型。如果没有显式声明基础类型,则使用Int32。编程语言通常提供语法来声明由一组已命名的常数和它们的值组成的枚举。注意:枚举类型的基类型是除 Char 外的任何整型,所以枚举类型的值是整型值。Enum 提供一些实用的静态方法:(1)比较枚举类的实例的方法(2)将实例的值转换为其字符串表示形式的方法(3)将数字的字符串表示形式转换为此类的实例的方法(4)创建指定枚举和值的实例的方法。举例:enum Colors { Red, Green, Blue, Yellow };Enum--&String(1)利用Object.ToString()方法:如Colors.Green.ToString()的值是"Green"字符串;(2)利用Enum的静态方法GetName与GetNames:public static string GetName(Type enumType,Object value)public static string[] GetNames(Type enumType)例如:Enum.GetName(typeof(Colors),3))与Enum.GetName(typeof(Colors), Colors.Blue))的值都是"Blue"Enum.GetNames(typeof(Colors))将返回枚举字符串数组。String--&Enum(1)利用Enum的静态方法Parse:public static Object Parse(Type enumType,string value)例如:(Colors)Enum.Parse(typeof(Colors), "Red")Enum--&Int(1)因为枚举的基类型是除 Char 外的整型,所以可以进行强制转换。例如:(int)Colors.Red, (byte)Colors.GreenInt--&Enum(1)可以强制转换将整型转换成枚举类型。例如:Colors color = (Colors)2 ,那么color即为Colors.Blue(2)利用Enum的静态方法ToObject。public static Object ToObject(Type enumType,int value)例如:Colors color = (Colors)Enum.ToObject(typeof(Colors), 2),那么color即为Colors.Blue判断某个整型是否定义在枚举中的方法:Enum.IsDefinedpublic static bool IsDefined(Type enumType,Object value)例如:Enum.IsDefined(typeof(Colors), n))&public enum EmployeeType{&&& RegularEmployee,&&& StoreManager,&&& ChainStoreManager,&&& DepartmentManager,&&& Supervisor}我们可以通过 ToString() 方法简单地获取到下列信息&EmployeeType employee = EmployeeType.ChainStoreMConsole.WriteLine(employee.ToString());Console.WriteLine(EmployeeType.ChainStoreManager.ToString());&/*&输出结果:&&ChainStoreManager&ChainStoreManager*/&但我们如何才能获取到的结果类似&Chain Store Manager&包括空格呢?我们不能去创建一个包含空格的枚举成员,否则你的代码将不能编译通过,事实上我们有很多方案可以解决这个问题。&1、在枚举成员和字符串之间创建一个映射(可以使用数组或哈希表)2、将枚举成员 ToString() 的结果作为为键指定到资源文件3、使用反射。。。。(我将在下面讲到)&在枚举中使用属性&我将使用属性来达到一个字符串关联到枚举成员的目的,下面通过一个简单的例子来说明这是如何做到的。&public class EnumDescriptionAttribute : Attribute{&&& private string m_strD&&& public EnumDescriptionAttribute(string strPrinterName)&&& {&&&&&&& m_strDescription = strPrinterN&&& }&&&& public string Description&&& {&&&&&&& get { return m_strD }&&& }}EnumDescriptionAttribute 类继承自 Attribute,它包含一个类型为String的属性Description,下面将该属性关联到枚举 EmployeeType 的所有成员上。&public enum EmployeeType{&&& [EnumDescription("Regular Employee")]&&& RegularEmploye,&&& [EnumDescription("Store Manager")]&&& StoreManager,&&& [EnumDescription("Chain Store Manager")]&&& ChainStoreManager,&&& [EnumDescription("Department Manager")]&&& DepartmentManager,&&& [EnumDescription("On Floor Supervisor")]&&& Supervisor}&从枚举获取到属性的值&为了获取到属性的值,我必须使用到反射,下是是一个简单的例子:&// setup the enumEmployeeType employee = EmployeeType.ChainStoreM&// get the field informaitonFieldInfo fieldInfo = employee.GetType().GetField("ChainStoreManager");&// get the attributes for the enum fieldobject[] attribArray = fieldInfo.GetCustomAttributes(false);&// cast the one and only attribute to EnumDescriptionAttributeEnumDescriptionAttribute attrib = (EnumDescriptionAttribute)attribArray[0];&// write the descriptionconsole.WriteLine("Description: {0}", attrib.Description);&/*&输入结果:&Chain Store Manager*/其中最重点的一行代码:FieldInfo fieldInfo = employee.GetType().GetField("ChainStoreManager"); 我们注意硬编码到里面的枚举成员名称ChainStoreManager实际上可以通过 ToString() 方法来代替。
、 、 、 、 、下次自动登录
现在的位置:
& 综合 & 正文
Asp.Net之枚举类型输出需要类型转换
看几篇,教程也没有做说明,为什么在输出枚举数据时需要将其转换为整型?
enum myInclude//定义枚举
#region enum 操作
Response.Write("&hr /&enum玫举类型的操作&hr /&");
Response.Write("默认语言:" + Convert.ToInt16(myInclude.s) + "&br /&");//这里输出的是9
Response.Write("默认环境:" + myInclude.d + "&br /&"); //这里没有进行类型转换输出的是d
#endregion
枚举类型的介绍:
枚举类型是由一组特定常量构成的一组数据结构,是值类型的一种特殊形式,当需要一个由指定常量集合组成的数据类型时,使用枚举类型。枚举声明可以显式地声明 byte、sbyte、short、ushort、int、uint、long 或 ulong 类型作为对应的基础类型。没有显式地声明基础类型的枚举声明意味着所对应的基础类型是 int。
注意点:1 对于没有赋值的枚举类型,声明的第一个枚举成员它的默值为零。以后的枚举成员值是将前一个枚举成员(按照文本顺序)的值加1得到的。2 允许多个枚举成员有相同的值。没有显示赋值的枚举成员的值,总是前一个枚举成员的值+1。3 使用时注意类型转换。
PS:经询问枚举类型数据在中可以当成INT型使用,但不能用于流显示(write)
Response.Write方法只有四个重载版本:public void Write(char ch);public void Write(object obj);public void Write(string s);public void Write(char[] buffer, int index, int count);
其中并没有支持枚举类型的重载版本。。
也就是说在这里使用.ToString()转换也可高手呀!~~
&&&&推荐文章:
【上篇】【下篇】}

我要回帖

更多关于 枚举类型enum用法 int 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信