Browse Source

增加枚举转数值类型扩展方法

tags/v1.3.0
SmallChi 6 years ago
parent
commit
676e80f901
1 changed files with 15 additions and 16 deletions
  1. +15
    -16
      src/JT809.Protocol/Extensions/JT809EnumExtensions.cs

+ 15
- 16
src/JT809.Protocol/Extensions/JT809EnumExtensions.cs View File

@@ -22,6 +22,17 @@ namespace JT809.Protocol.Extensions
return Convert.ToInt32(t); return Convert.ToInt32(t);
} }


/// <summary>
/// 转为 u16 整型
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="t"></param>
/// <returns></returns>
public static ushort ToUInt16Value<T>(this T t) where T : struct
{
return Convert.ToUInt16(t);
}

/// <summary> /// <summary>
/// 转为Byte /// 转为Byte
/// </summary> /// </summary>
@@ -89,7 +100,7 @@ namespace JT809.Protocol.Extensions
/// <summary> /// <summary>
/// 获取DescriptionAttribute特性枚举及描述 /// 获取DescriptionAttribute特性枚举及描述
/// </summary> /// </summary>
/// <param name="value"></param>
/// <param name="type"></param>
/// <returns></returns> /// <returns></returns>
public static Dictionary<string, string> GetDescriptionAttributeDictionary(this Enum value) public static Dictionary<string, string> GetDescriptionAttributeDictionary(this Enum value)
{ {
@@ -106,7 +117,7 @@ namespace JT809.Protocol.Extensions
/// <summary> /// <summary>
/// 获取DisplayNameAttribute特性枚举值的描述 /// 获取DisplayNameAttribute特性枚举值的描述
/// </summary> /// </summary>
/// <param name="value">枚举值</param>
/// <param name="obj">枚举值</param>
/// <returns></returns> /// <returns></returns>
public static string GetDisplayName(this Enum value) public static string GetDisplayName(this Enum value)
{ {
@@ -117,7 +128,7 @@ namespace JT809.Protocol.Extensions
/// <summary> /// <summary>
/// 获取DisplayNameAttribute特性枚举及描述 /// 获取DisplayNameAttribute特性枚举及描述
/// </summary> /// </summary>
/// <param name="value"></param>
/// <param name="type"></param>
/// <returns></returns> /// <returns></returns>
public static Dictionary<string, string> GetDisplayNameAttributeDictionary(this Enum value) public static Dictionary<string, string> GetDisplayNameAttributeDictionary(this Enum value)
{ {
@@ -152,18 +163,6 @@ namespace JT809.Protocol.Extensions
} }
} }


/// <summary>
/// 根据值获取对应枚举类型集合
/// </summary>
/// <typeparam name="T">具体枚举类型</typeparam>
/// <param name="value">枚举值</param>
/// <param name="digit">位数(8,16,32)</param>
/// <returns></returns>
public static IEnumerable<T> GetEnumTypes<T>(this int value,int digit) where T : Enum
{
return GetEnumTypes<T>(value, digit,true);
}

/// <summary> /// <summary>
/// 根据值获取对应枚举类型集合 /// 根据值获取对应枚举类型集合
/// </summary> /// </summary>
@@ -172,7 +171,7 @@ namespace JT809.Protocol.Extensions
/// <param name="digit">位数(8,16,32)</param> /// <param name="digit">位数(8,16,32)</param>
/// <param name="ignoreUnknown">是否忽略未知数据</param> /// <param name="ignoreUnknown">是否忽略未知数据</param>
/// <returns></returns> /// <returns></returns>
public static IEnumerable<T> GetEnumTypes<T>(this int value, int digit,bool ignoreUnknown) where T : Enum
public static IEnumerable<T> GetEnumTypes<T>(this int value, int digit, bool ignoreUnknown = false) where T : Enum
{ {
List<T> values = new List<T>(); List<T> values = new List<T>();
for (int i = 0; i < digit; i++) for (int i = 0; i < digit; i++)


Loading…
Cancel
Save