public enum Icon_Type : byte { ////// 操作成功 /// Ok, ////// 操作标示 /// Alert, ////// 操作失败 /// Error }
继承: byte,这个表示枚举元素使用 byte 存储。
枚举类型默认时:public enum Icon_Type : int
byte 是 0~255之间的整数,int 是-2147483648~2147483647
enum sex:byte { male=0; female=1; } enum sexy:int { male=0; female=1; } sex A=sex.male; //A在栈中占用一个字节的位置 sexy B=sexy.male //B在栈中占用四个字节的位置 因为int是4字节整数
是值类型,
继承至Enum,System.ValueType
和其他类型之间的相互转化(Fruit)Enum.Parse(typeof(Fruit),”apple”);
获取所有的值Enum.GetValues(typeof(Fruit))
获取所有的成员的名称Enum.getNames(typeof(Fruit))
获取基础类型(默认为int):Enum.GetUnderlyingType(typeof(Fruit))
作用:添加对应枚举的中文描述()
如何获取:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace ConsolePro
{
[Description("水果")]
public enum Fruit
{
[Description("苹果")]
apple = 1,
[Description("橘子")]
orange = 2,
[Description("香蕉")]
banana = 3
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine(Fruit.apple.GetDescription(false));
Console.WriteLine(Fruit.apple.GetDescription(true));
Console.Read();
}
}
public static class Extension
{
public static string ToConcatString(this string[] strs, char concatChar)
{
StringBuilder build = new StringBuilder();
foreach (var item in strs)
{
build.AppendFormat("{0}{1}", item, concatChar);
}
return build.ToString().TrimEnd(concatChar);
}
///
/// 获取枚举的Description特性的描述
///
///
/// 是否显示的enum类型上的Description还是当前枚举值的
///
public static string GetDescription(this object enumObj, bool isEnumSelf)
{
string description = string.Empty;
try
{
if (enumObj != null)
{
Type enumType = enumObj.GetType();
DescriptionAttribute desAttr = null;
if (isEnumSelf)
{
desAttr = (DescriptionAttribute)Attribute.GetCustomAttribute(enumType, typeof(DescriptionAttribute));
}
else
{
FieldInfo field = enumType.GetField(Enum.GetName(enumType, enumObj));
desAttr = (DescriptionAttribute)Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute));
}
if (desAttr != null)
{
description = desAttr.Description;
}
}
}
catch
{
return string.Empty;
}
return description;
}
}
}
https://www.cnblogs.com/xiaosongluffy/articles/3710333.html