当前位置: 首页 >>ASP.NET >>C#教程 >>C#枚举类型变量的使用方法

C#枚举类型变量的使用方法

时间:2020/8/21 3:22:00 【admin】

在C#的每种数据类型中都有明确的取值范围,诚然,有些类型的取值范围非常大,可以看作是连续的,但其中的数值总是固定的,最简单的救命是bool类型,它只能是两个值:true或false.…

   在C#的每种数据类型中都有明确的取值范围,诚然,有些类型的取值范围非常大,可以看作是连续的,但其中的数值总是固定的,最简单的救命是bool类型,它只能是两个值:true或false.

   有时希望变量提取的是一个固定集合中的值,例如,orientation类型可以存储north,south,east或west中的一个值.此时,就可以使用枚举类型,枚举就可以完成这个orientation类型的任务,它们允许定义一个类型,其中包含提供的限定值集合中的一个值.

   所以,需要创建自己的枚举类型orientation.它可以从上述的四个值中提取一个值,注意这是一个附加的步骤,不是仅仅声明一个给定类型的变量,而是声明和描述一个用户定义的类型,而声明这个新类型的变量.


源码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 枚举类型怎么写
{
    class Program
    {        //定义枚举
        public enum ServicePut : byte
        {
            安装服务 = 2,
            启动服务 = 4,
            卸载服务 = 8,
            验证服务状态 = 16,
            停止服务 = 32,
            嘻嘻 = 64,
            哈哈 = 128,
        }        //输出执行了那个枚举形式
        public static void DeployService(ServicePut jsp)
        {
            if ((jsp & ServicePut.安装服务) == ServicePut.安装服务)
            {
                Console.WriteLine("安装服务");
            }
            if ((jsp & ServicePut.启动服务) == ServicePut.启动服务)
            {
                Console.WriteLine("启动服务");
            }
            if ((jsp & ServicePut.卸载服务) == ServicePut.卸载服务)
            {
                Console.WriteLine("卸载服务");
            }
            if ((jsp & ServicePut.验证服务状态) == ServicePut.验证服务状态)
            {
                Console.WriteLine("验证服务状态");
            }
            if ((jsp & ServicePut.停止服务) == ServicePut.停止服务)
            {
                Console.WriteLine("停止服务");
            }
            if ((jsp & ServicePut.嘻嘻) == ServicePut.嘻嘻)
            {
                Console.WriteLine("嘻嘻");
            }
            if ((jsp & ServicePut.哈哈) == ServicePut.哈哈)
            {
                Console.WriteLine("哈哈");
            }
        }        //主函数
        static void Main(string[] args)
        {
            DeployService(ServicePut.安装服务);
            DeployService(ServicePut.启动服务);
            DeployService(ServicePut.卸载服务);
            DeployService(ServicePut.验证服务状态);
            DeployService(ServicePut.停止服务);
            DeployService(ServicePut.嘻嘻);

            Console.WriteLine("--------------------------");

            DeployService(ServicePut.安装服务 | ServicePut.启动服务); //这里可以把两个值按照按位运算判断,也就是可以同时输出两个项
            DeployService(ServicePut.安装服务 | ServicePut.停止服务);
            DeployService(ServicePut.验证服务状态 | ServicePut.停止服务);
            DeployService(ServicePut.启动服务 | ServicePut.停止服务);
            DeployService(ServicePut.哈哈 | ServicePut.启动服务);
            DeployService(ServicePut.嘻嘻 | ServicePut.停止服务);

            Console.ReadKey();
        }
    }
}

然后枚举的问题还有:

1 通过枚举的名称获取值.

2 通过值获取名称.

但是只要知道了 Enum.GetValues() 的操作就可以了


foreach (var value in Enum.GetValues(typeof(ServicePut))) //遍历这个枚举类型

{

    if (value.ToString() == "验证服务状态")  //获取枚举的每项的名称

    {

        var enumName = (ServicePut)value;  //然后把泛型又强转成枚举类型,可作为输出

        break;

    }

}


相关文章

CopyRight:2007-2018 语言吧 备案ICP:湘ICP备09009000号-15 http://www.yuyanba.com

分享按钮