C# 基础--枚举类型

在使用枚举类型时候,什么时候获取的是枚举变量,什么时候获取的是枚举值?也就是如何获取字符描述或者对应的数值。

结论:
  1.使用 枚举变量.GetHashCode() 方法可以获取枚举值,即数值。
  2.对枚举变量直接打印,得到的是字符描述信息
  3.创建枚举变量时候,如果没有用枚举成员赋值对其赋值时,有两种情况:
      a.枚举值定义不从0开始,得到的枚举变量的值是0,得到的字符描述也是0;
      b. 枚举值定义从0开始,得到的枚举变量的值是0,得到的字符描述是0所对应的描述信息。

代码如下:

/*------------------------------------------------------------
// 文件名:枚举.cs
// 文件功能描述:枚举
// 
// 创建时间:Administrator 2021/2/21 星期日 下午 4:37
// 修改描述:验证枚举类型如何获取枚举类中的成员枚举值,以及如何获取枚举类中的成员,也就是字符和数值如何获取
//------------------------------------------------------------*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 验证
{
    class 枚举
    {
        public enum OperateData
        {
        	//Mod = 0,    //有无这行代码将影响未赋值情况下的枚举变量内容
            [Description("加")]
            Add = 1,
            [Description("减")]
            Sub = 2,
            [Description("除")]
            Div = 3,
            [Description("乘")]
            Mul = 4
        }

        static void Main(string[] args)
        {
            OperateData testOperate1 = new OperateData();
            OperateData testOperate2 = new OperateData();
            OperateData testOperate3 = new OperateData();

            testOperate1 = OperateData.Sub;
            testOperate2 = (OperateData)1;

            Console.WriteLine(testOperate1);                  //打印 Sub
            Console.WriteLine(testOperate1.ToString());       //打印 Sub
            Console.WriteLine(testOperate1.GetHashCode());    //打印 2
            Console.WriteLine(testOperate1.GetType());        //打印的是当前枚举值类型 即:
            Console.WriteLine(testOperate1.Equals("Sub"));    //打印  False
            Console.WriteLine(testOperate1.Equals("减"));     //打印  False
            Console.WriteLine(testOperate1.Equals(2));        //打印  False

            OperateData temp = OperateData.Sub;
            Console.WriteLine(testOperate1.Equals(temp));     //打印 True

            Console.WriteLine(testOperate2);                  //打印 Add
            Console.WriteLine(testOperate2.ToString());       //打印 Add
            Console.WriteLine(testOperate2.GetHashCode());    //打印 1
                                                            
            Console.WriteLine(testOperate3);                  //打印 0
            Console.WriteLine(testOperate3.ToString());       //打印 0
            Console.WriteLine(testOperate3.GetHashCode());    //打印 0
                                                            
            testOperate3 = OperateData.Mul;                   
            Console.WriteLine(testOperate3);                  //打印 Mul
            Console.WriteLine(testOperate3.ToString());       //打印 Mul
            Console.WriteLine(testOperate3.GetHashCode());    //打印 4
        }
    }
}

运行结果:
C# 基础--枚举类型_第1张图片

你可能感兴趣的:(C#,c#,枚举)