C#中枚举类型和int 类型的转化
先定义⼀个枚举类型
public enum PropertyType { ⼩学 = 0, 初中, ⾼中,⼤学 };
int ->enum
int d=2;enum c++
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 ,
看起來差不多。
有⼀天有需要把⼀个变成另⼀个來⽤。可能会写成这样:
看起來可以,编译也对。但实际上是不對的,因为实际上是转成enum 所代表的int ,对应的結果往往不是我们想要的。正确的作法是
这是⼀种很简单的理念,但常常写成上⾯的写法。但⽇后如果其中之⼀有变,造成顺序有更改的話,就会出现错误。
Enum.GetName ⽅法
指定枚举中检索具有指定值的常数的名称。
public static string GetName(
Type enumType,
Object value )
1public enum Colors {Red, Green, Blue}2 3public enum BgColors {Red, Black, Green, Blue }
1Colors font_color = Colors.Blue;2BgColor bg = (BgColor)font_color;
1Colors font_color = Colors.Blue;2(BgColor)Enum.Parse(typeof (BgColor), font_color.ToString());
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 的常数名称的字符串数组。
View Code
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论