C#语言中提供了枚举和整型之间的强制转换功能
来源:互联网 发布:java天气预报源代码 编辑:程序博客网 时间:2024/05/16 06:35
<span style="font-family: Arial, Helvetica, sans-serif;">C#语言中提供了枚举和整型之间的强制转换功能,但这仅限于没有给枚举类型中各个元素指定基础类型值的</span>情况, 如下:
enum Days {Sat, Sun, Mon, Tue, Wed, Thu, Fri};
其中Sat的值是0, Sun是1,以此类推, 这时如果要将整型值转换为枚举类型,可以直接作显式强类型转换即可,
int i_day = 1;
Days day = (Days) i_day; // day == Days.Sun
获取枚举的描述方法如下:
定义Model
/// <summary> /// 兼职工作薪资 /// </summary> public enum PriceTypeEnum { /// <summary> /// 天 /// </summary> [Description("元/天")] day = 1, /// <summary> /// 小时 /// </summary> [Description("元/小时")] hour = 2, /// <summary> /// 周 /// </summary> [Description("元/周")] week = 3, /// <summary> /// 月 /// </summary> [Description("元/月")] month = 4 }
通用 方法:
public class EnumHelper { public static string GetDescription(Enum value) { FieldInfo fi = value.GetType().GetField(value.ToString()); DescriptionAttribute[] attributes = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false); if ((attributes != null) && (attributes.Length > 0)) return attributes[0].Description; else return value.ToString(); } /// <summary> /// 获取枚举的描述文本 /// </summary> /// <param name="e">枚举成员</param> /// <returns></returns> public static string GetEnumDescription(object e) { //获取字段信息 System.Reflection.FieldInfo[] ms = e.GetType().GetFields(); Type t = e.GetType(); foreach (System.Reflection.FieldInfo f in ms) { //判断名称是否相等 if (f.Name != e.ToString()) continue; //反射出自定义属性 foreach (Attribute attr in f.GetCustomAttributes(true)) { //类型转换找到一个Description,用Description作为成员名称 System.ComponentModel.DescriptionAttribute dscript = attr as System.ComponentModel.DescriptionAttribute; if (dscript != null) return dscript.Description; } } //如果没有检测到合适的注释,则用默认名称 return e.ToString(); } /// <summary> /// 把枚举的描述和值绑定到DropDownList /// </summary> /// <param name="enumType"></param> /// <returns></returns> public static List<SelectListItem> GetSelectList(Type enumType) { List<SelectListItem> selectList = new List<SelectListItem>(); foreach (object e in Enum.GetValues(enumType)) { selectList.Add(new SelectListItem { Text = GetEnumDescription(e), Value = ((int)e).ToString() }); } return selectList; } }
最后使用时:
@Jyson.ZhanShiQuan.Common.EnumHelper.GetEnumDescription((Jyson.ZhanShiQuan.Model.Enum.PriceTypeEnum)@Model.PriceType)
界面上,可以这样使用:
@Html.DropDownListFor(model => model.Channel, Uxiaoyuan.Common.EnumHelper.GetSelectList(typeof(Uxiaoyuan.Model.Enum.Home.ChannelEnum)), "=请选择=")
- C#语言中提供了枚举和整型之间的强制转换功能
- C#语言中提供了枚举和整型之间的强制转换功能(SelectItem)
- C#枚举和字符串以及整型数之间的转换
- 关于C++中枚举和整型之间的转换
- c#中枚举和int之间的相互转换
- C#中整型到枚举类型的转换
- 枚举与整型之间的转换
- [心得]C语言中整型与字符串之间的转换
- C语言整型和字符串之间的转换
- C#中使用强制类型实现字符串和ASCII码之间的转换
- JAVA中字符串和整型之间的转换
- java 中枚举类型,整型,字符串之间转换
- java 中枚举类型,整型,字符串之间转换
- java中枚举类型,整型,字符串之间转换
- C#学习笔记8-整型的三种强制转换int、int.Parse()和Convert.ToInt32()
- java中整型之间的转换
- java中整型之间的转换
- C#中日期型数据和长整型数据之间的转换,以及格式字串转换
- 如何提升代码可读性?
- win8+fedora双系统删除linux后无法启动
- Maven入门示例(4):自动部署Tomcat错误排除
- php header Content-Type类型小结
- 比较前N个字符串大小 strncmp
- C#语言中提供了枚举和整型之间的强制转换功能
- ACM最小表示法 最大表示法 模板 及其使用环境 判断字符串循环重构
- 让TdirectoryListBox显示系统隐藏文件夹和文件
- PHP、Python 相关正则函数一点实例
- 一道基本的汇编语言题目
- 给大学生学习ARM和FPGA的建议(周立功)
- Windows CE下的串口通讯实例
- LinkedStack
- 图文并茂:一步一步跟我搭建Windows CE 6.0 R3开发环境