C# 枚举操作扩展类
using System;
using System.Linq;
using System.ComponentModel; namespace Demo.Common
{
/// <summary>
/// Enum帮助类
/// </summary>
public static class EnumHelper
{
/// <summary>
/// 获取枚举成员的值(this是扩展方法的标志)
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public static int ToInt(this Enum obj)
{
return Convert.ToInt32(obj);
} public static T ToEnum<T>(this string obj) where T : struct
{
if (string.IsNullOrEmpty(obj))
{
return default(T);
}
try
{
return (T)Enum.Parse(typeof(T), obj, true);
}
catch (Exception)
{
return default(T);
}
} /// <summary>
/// 获取指定枚举成员的描述
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public static string ToDescriptionString(this Enum obj)
{
var attribs = (DescriptionAttribute[])obj.GetType().GetField(obj.ToString()).GetCustomAttributes(typeof(DescriptionAttribute), false);
return attribs.Length > ? attribs[].Description : obj.ToString();
} /// <summary>
/// 根据枚举值,获取指定枚举类的成员描述
/// </summary>
/// <param name="type"></param>
/// <param name="id"></param>
/// <returns></returns>
public static string GetDescriptionString(this Type type, int? id)
{
var values = from Enum e in Enum.GetValues(type)
select new { id = e.ToInt(), name = e.ToDescriptionString() }; if (!id.HasValue) id = ; try
{
return values.ToList().Find(c => c.id == id).name;
}
catch
{
return "";
}
}
}
}
C# 枚举操作扩展类的更多相关文章
- C# Enum枚举类型操作扩展类
使用示例: using System.ComponentModel; namespace SchoolEnterpriseManageSys.Enum { /// <summary> // ...
- C#操作Xml树的扩展类
本文提供一个操作Xml树的扩展类,与将xml字符串直接映射成实体对象的使用方法,供大家参考,学习. 下面附上源码 using System; using System.Collections.Gene ...
- C#枚举(一)使用总结以及扩展类分享
0.介绍 枚举是一组命名常量,其基础类型为任意整型. 如果没有显式声明基础类型, 则为Int32 在实际开发过程中,枚举的使用可以让代码更加清晰且优雅. 最近在对枚举的使用进行了一些总结与整理,也发现 ...
- Java+7入门经典 - 6 扩展类与继承 Part 1/2
第6章 扩展类与继承 面向对象编程的一个重要特性: 允许基于已定义的类创建新的类; 6.1 使用已有的类 派生 derivation, 派生类 derived class, 直接子类 direct s ...
- JAVA枚举操作(获取值,转map集合)
JAVA枚举相对来说比.NET的枚举功能强大,感觉就像是一种简化版的类对象,可以有构造方法,可以重载,可以继承接口等等,但不能继承类,JAVA枚举在实际开发中应用相当频繁,以下几个封装方法在实际开发中 ...
- XML格式示例 与 XML操作(读取)类封装
header('Content-Type: text/xml'); <?xml version="1.0" encoding="utf-8" standa ...
- C# 集合已修改;可能无法执行枚举操作
在winform 项目时遇到: 集合已修改;可能无法执行枚举操作的问题 错误原因:当用foreach遍历Collection时,如果对Collection有Add或者Remove或其他类似操作都会有这 ...
- [asp.net mvc 奇淫巧技] 03 - 枚举特性扩展解决枚举命名问题和支持HtmlHelper
一.需求 我们在开发中经常会遇到一些枚举,而且这些枚举类型可能会在表单中的下拉中,或者单选按钮中会用到等. 这样用是没问题的,但是用过的人都知道一个问题,就是枚举的命名问题,当然有很多人枚举直接中文命 ...
- 【转载】微软官方提供的Sqlserver数据库操作帮助类SQLHelper类
在.NET平台中,C#语言一般使用ADO.NET组件来操作Sqlserver数据库,通过ADO.NET组件可以实现连接数据库.查询数据集.执行SQL语句以及关闭数据库连接等操作,为此网上有很多开发者自 ...
随机推荐
- UIButton设置了UIControlStateSelected和UIControlStateHighlighted状态的图片点击会闪烁的解决方案
[btn setBackgroundImage:img1 forState:UIControlStateSelected|UIControlStateHighlighted]; [btn setIma ...
- iOS开发,hook系统Objective-C的函数
我们都知道在windows下可以通过API轻松的hook很多消息,IOS也可以实现hook的功能. 建立一个 TestHookObject类 // // TestHookObject.m // Tes ...
- 基于jQuery向下弹出遮罩图片相册
今天给大家分享一款基于jQuery向下弹出遮罩图片相册.单击相册图片时,一个遮罩层从上到下动画出现.然后弹出显示图片.这款插件适用浏览器:IE8.360.FireFox.Chrome.Safari.O ...
- zookeeper的异常处理(Disconnected, SyncConnected, Expired)
最近系统中使用zookeeper支持三个功能:全量/增量索引的消息通知:搜索活跃节点检查:分布式锁做索引切换同步. 线上服务对稳定性要求较高,包括各种异常情况,如网络中断导致连接断开,系统load过高 ...
- mysql常用备注
一:One Table have only one Auto_Increment that column is must to be Primary key. (自增加的字段必须是主键且是数字类型) ...
- mysql分表研究
分表是分散数据库压力的好方法. 分表,最直白的意思,就是将一个表结构分为多个表,然后,可以再同一个库里,也可以放到不同的库. 当然,首先要知道什么情况下,才需要分表.个人觉得单表记录条数达到百万到千万 ...
- 在应用程序中操作NorFlash
相对于操作NandFlash,操作NorFlash相对简单,因为基本不需要考虑坏块,NorFlash也没有OOB区域,也跟ECC没有一毛钱关系.它的读写擦除相对容易. int dealwithnor( ...
- 我的Blog开张啦,欢迎大家赏脸
Blog开张,以后会慢慢更新工作.学习遇到的问题,总结一些经验,观众老爷们多多支持!!! ^_^
- 关于删除7z历史解压路径
目前7zip尚无此功能,只能从注册表入手了,7zip历史记录保存在注册表 HKEY_CURRENT_USER\Software\7-Zip\FM 下的CopyHistory和FolderHistory ...
- C#中的预处理器指令详解
这篇文章主要介绍了C#中的预处理器指令详解,本文讲解了#define 和 #undef.#if.#elif.#else和#endif.#warning和#error.#region和#endregio ...