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
        }
    }
}

运行结果:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值