C#中Enum枚举类型的简单使用
枚举类型的介绍:
枚举类型是由一组特定常量构成的一组数据结构,是值类型的一种特殊形式,当需要一个由指定常量集合组成的数据类型时,使用枚举类型。枚举声明可以显式地声明 byte、sbyte、short、ushort、int、uint、long 或 ulong 类型作为对应的基础类型。没有显式地声明基础类型的枚举声明意味着所对应的基础类型是 int。
注意点:
1 对于没有赋值的枚举类型,声明的第一个枚举成员它的默值为零。以后的枚举成员值是将前一个枚举成员(按照文本顺序)的值加1得到的。
2 允许多个枚举成员有相同的值。没有显示赋值的枚举成员的值,总是前一个枚举成员的值+1。
3 使用时注意类型转换。
可以看出枚举类型的本质都是数字类型。在显示的时候如果需要将枚举的值映射成其相对应的字符串,下边是一个简单的解决方法。
[csharp] public enum DataTypeId
{
[StringValue("Money")]
Money = 0,
[StringValue("Number")]
Number = 1,
[StringValue("Datetime")]
Datetime = 2,
[StringValue("LongText")]
LongText = 3,
[StringValue("ShortText")]
ShortText = 4,
[StringValue("IdeaType")]
IdeaType = 5,
[StringValue("Status")]
Status = 6
}
public class StringValue : System.Attribute
{
private string _value;
public StringValue(string value)
{
_value = value;
}
public string Value
{
get { return _value; }
}
}
public static class StringEnum
{
public static string GetStringValue(Enum value)
{
string output = null;
Type type = value.GetType();
FieldInfo fi = type.GetField(value.ToString());
StringValue[] attrs =
fi.GetCustomAttributes(typeof(StringValue),
false) as StringValue[];
if (attrs.Length > 0)
{
output = attrs[0].Value;
}
return output;
}
}
public enum DataTypeId
{
[StringValue("Money")]
Money = 0,
[StringValue("Number")]
Number = 1,
[StringValue("Datetime")]
Datetime = 2,
[StringValue("LongText")]
LongText = 3,
[StringValue("ShortText")]
ShortText = 4,
[StringValue("IdeaType")]
IdeaType = 5,
[StringValue("Status")]
Status = 6
}
public class StringValue : System.Attribute
{
private string _value;
public StringValue(string value)
{
_value = value;
}
public string Value
{
get { return _value; }
}
}
public static class StringEnum
{
public static string GetStringValue(Enum value)
{
string output = null;
Type type = value.GetType();
FieldInfo fi = type.GetField(value.ToString());
StringValue[] attrs =
fi.GetCustomAttributes(typeof(StringValue),
false) as StringValue[];
if (attrs.Length > 0)
{
output = attrs[0].Value;
}
return output;
}
}
在使用的时候,只需要调用相应
补充:软件开发 , C# ,