• c#中枚举的使用


    枚举在系统中广泛使用。对于整个系统中统一的定义某类标准化使用非常重要。

    枚举的使用,主要使用值去判定是否相等,内容经常是作为显示说明。

    为了解决有时显示说明中带特殊符号时,要在说明中去备注。取得备注然后作为显示说明也是一个需要解决的问题。

    举例说明:

    /// <summary>
    /// 通讯类型
    /// </summary>
    public enum EnumCommType
    {
    /// <summary>
    /// GRRS
    /// </summary>
    [Description("GRRS")]
    GRRS=0,
    /// <summary>
    /// (虚拟)专网(Modbus TCP)
    /// </summary>
    [Description("(虚拟)专网(Modbus TCP)")]
    ModbusTCP=1,
    /// <summary>
    /// (虚拟)专网(Modbus RTU)
    /// </summary>
    [Description("(虚拟)专网(Modbus RTU)")]
    ModbusRTU=2,
    /// <summary>
    /// OPC
    /// </summary>
    [Description("OPC")]
    OPC=4,
    /// <summary>
    /// 其他(网络、串口、中间库导入、WebServices导入)
    /// </summary>
    [Description("其他(网络、串口、中间库导入、WebServices导入)")]
    Other=9
    }

    1. 根据编号获取到枚举

    (EnumCommType)dev.C_CommType

    2.根据编号获取到枚举内容

    ((EnumCommType)dev.C_CommType).ToString()

    3. 提供获取枚举说明的方法

    ((EnumCommType)dev.C_CommType).GetDescription()

    获取枚举的扩展方法定义

    /// <summary>
    /// 获取枚举的注解值
    /// </summary>
    /// <typeparam name="T">泛型</typeparam>
    /// <param name="enumValue">枚举值</param>
    /// <returns>返回枚举注解</returns>
    public static string GetDescription<T>(this T enumValue)
    where T : struct, IConvertible
    {
    if (!typeof(T).IsEnum)
    {
    return null;
    }

    var description = enumValue.ToString();
    var fieldInfo = enumValue.GetType().GetField(enumValue.ToString());

    if (fieldInfo != null)
    {
    var attrs = fieldInfo.GetCustomAttributes(typeof(DescriptionAttribute), true);
    if (attrs != null && attrs.Length > 0)
    {
    description = ((DescriptionAttribute)attrs[0]).Description;
    }
    }

    return description;
    }

  • 相关阅读:
    移动端测试作业小集合 (6)
    移动端测试——手机常见操作的API (5)
    移动端测试——APP元素信息、事件操作、模拟手势API(4)
    移动端测试——APP元素定位操作 (3)
    移动端测试——App基础操作(2)
    移动端测试基础 (1)
    Python进阶-一切皆对象及type-object-class间的关系
    故障-解决pip安装mysqlclient、gevent报找不到cc或gcc错误问题
    Linux环境上部署Flask
    解决多版本共存时,python/pip等命令失效
  • 原文地址:https://www.cnblogs.com/lvlaozf/p/14824502.html
Copyright © 2020-2023  润新知