zoukankan      html  css  js  c++  java
  • 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;
    }

  • 相关阅读:
    46)父类和子类出现重名变量
    45)子类的构造和析构
    44)子类与父类之间的兼容性问题
    43)继承的方式
    42)子类继承 有参父类 和无参父类
    41)子类和父类的内存关系
    40)类与类之间的关系(has use is)
    jquery学习之1.15-克隆节点
    jquery学习之1.14-删除节点
    jquery学习之1.13-节点插入-外部插入和内部插入
  • 原文地址:https://www.cnblogs.com/lvlaozf/p/14824502.html
Copyright © 2011-2022 走看看