c# 枚举的定义,枚举的用法,获取枚举值

Posted Mr.石

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# 枚举的定义,枚举的用法,获取枚举值相关的知识,希望对你有一定的参考价值。

1.定义枚举类型

   public enum Test
    {
        男 = 0,
        女 = 1
    }

2.获取枚举值

        public void EnumsAction()
        {
            var s = Test.男;//男
            var s2 = (int)Test.男;//0

            var a = Test.男.ToString();//"男"

            var r = (Test)1;//女

            var x = (Test)Enum.Parse(typeof(Test), "男");//男
            var x2 = Enum.Parse(typeof(Test), "男");//男
            var x3 = Enum.GetName(typeof(Test),0);//"男"

            foreach (var item in Enum.GetValues(typeof(Test)))
            {
                var v = item;//男[女]
                var v2 = (int)item;//0[1]
                var t = item.GetType();//{Name = "Test" FullName = "BaseControl.Enum.Test"}
                var g = item.ToString();//"男"["女"]
            }
        }

对于typeof的解释:https://wenda.so.com/q/1365708081065503?src=150

C# typeof() 和 GetType()区是什么?
1、typeof(x)中的x,必须是具体的类名、类型名称等,不可以是变量名称。 
2、GetType()方法继承自Object,所以C#中任何对象都具有GetType()方法,它的作用和typeof()相同,返回Type类型的当前对象的类型。 

比如有这样一个变量i: 
Int32 i = new Int32(); 

i.GetType()返回值是Int32的类型,但是无法使用typeof(i),因为i是一个变量,如果要使用typeof(),则只能:typeof(Int32),返回的同样是Int32的类型。

 附上另一篇枚举详解:https://www.cnblogs.com/eggTwo/p/5950131.html

JAVA&NET技术QQ群号:456257217有问题的可以在群里面提问。

c#枚举类型操作方法总结-1

关于枚举类型用法总结两点,分享如下:

1.  根据枚举值获取枚举值的描述信息,可以封装一个方法供调用:

//  enumValue是传入的枚举值

public string GetEnumDescrption(Enum enumValue)
{
string value = enumValue.ToString();
FieldInfo field = enumValue.GetType().GetField(value);
object[] objs = field.GetCustomAttributes(typeof(DescriptionAttribute),false);//获取描述属性
//当描述没有时直接返回名称
if (objs ==null || objs.Length ==0)
{
return value;
}
DescriptionAttribute descriptionAttribute = (DescriptionAttribute)objs[0];
return descriptionAttribute.Description;
}

枚举类型是:

public enum EnumSex
{
/// <summary>
/// 男
/// </summary>
[Description("男")]
Male = 0,
/// <summary>
/// 女
/// </summary>
[Description("女")]
Female = 1
}

 

调用方法如下:

以控制台程序为例-

Program program = new Program();
string sex = program.GetEnumDescrption(EnumSex.Female);//sex ="女"
Console.WriteLine(sex);

 

 

2.for循环获取枚举值描述信息:

枚举类型如下:

public enum days
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}

调用方法如下:

Type week = typeof(days);
Array Arrays = Enum.GetValues(week);
for (int i = 0; i < Arrays.LongLength; i++)
{
Console.WriteLine(Arrays.GetValue(i));
}
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);

以上是关于c# 枚举的定义,枚举的用法,获取枚举值的主要内容,如果未能解决你的问题,请参考以下文章

c#枚举类型操作方法总结-1

如何从自定义用户控件 WPF、C# 中的枚举自定义属性中获取值?

C#如何将枚举类(enum)型转换成字符(string)类型

枚举ENUM的tostring() valueof()和values()用法

C#如何将枚举类(enum)型转换成字符(string)类型

C#枚举类型和结构体