• 测试篇 c#枚举类型怎么用?


    有很多人写的教程都没有像我一样用代码简单说明...

    所以我这里贴出来一下,免得我忘记...嘻嘻

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace 枚举类型怎么写
    {
        class Program
        {
    [Flags]//.ToString()打印的时候是是名称而不是值噢!
    //定义枚举
    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;  //然后强转成枚举类型,可作为输出
            return enumName;
        }
    }

    (完)

  • 相关阅读:
    D3.js:交互式操作
    D3.js:Update、Enter、Exit
    D3.js:动态效果
    D3.js:完整的柱形图
    D3.js:坐标轴
    D3.js
    ES 6 : 数组的扩展
    ES 6 : Math对象的扩展
    拉勾网企业图片列表效果
    拉勾网图片切换效果
  • 原文地址:https://www.cnblogs.com/JJBox/p/12033641.html
Copyright © 2020-2023  润新知