using
System;
using
System.ComponentModel;
namespace
TestEnum
{
//基础枚举
public
enum
Name
{
[Description(
"鲍勃"
)]
[DataTest(
"中文3级"
)]
boob,
[Description(
"马宇"
)]
[DataTest(
"中文2级"
)]
JackMa,
[Description(
"陈龙"
)]
[DataTest(
"中文1级"
)]
JackChan,
[Description(
"丽莎"
)]
[DataTest(
"中文2级"
)]
Lisa,
[Description(
"保罗"
)]
[DataTest(
"中文2级"
)]
Poro
}
public
class
DataTest : Attribute
{
public
string
Data {
get
;
set
; }
public
DataTest(
string
data)
{
Data = data;
}
public
DataTest(){}
}
static
class
EnumExtensions
{
public
static
string
GetDescription(
this
Enum val)
{
var field = val.GetType().GetField(val.ToString());
var customAttribute = Attribute.GetCustomAttribute(field,
typeof
(DescriptionAttribute));
return
customAttribute ==
null
? val.ToString() : ((DescriptionAttribute)customAttribute).Description;
}
public
static
string
GetData(
this
Enum val)
{
var field = val.GetType().GetField(val.ToString());
var customAttribute = Attribute.GetCustomAttribute(field,
typeof
(DataTest));
return
customAttribute ==
null
? val.ToString() : ((DataTest)customAttribute).Data;
}
}
}