C#语言中提供了枚举和整型之间的强制转换功能(SelectItem)
- <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#语言中提供了枚举和整型之间的强制转换功能(SelectItem)相关推荐
- 我的Go+语言初体验——(6)整型有理数数据类型
我的Go+语言初体验--(6)整型有理数数据类型 "我的Go+语言初体验" | 征文活动进行中- Go+ 语言使用后缀 'r' 表示有理数,支持整型.分数型.浮点型三种有理数数据类 ...
- c语言赋值小数,c语言中将一个浮点型赋值给整型时,会不会四舍五入?
c语言中将一个浮点型赋值给整型时,不会四舍五入,会直接舍去小数部分的数据,也可以认为是执行了下取整运算. 将浮点数(单双精度)转换为整数时,将舍弃浮点数的小数部分,只保留整数部分.将整型值赋给浮点型变 ...
- 本题要求编写程序,对输入的一个整数,从高位开始逐位分割并输出它的各位数字。输入格式:输入在一行中给出一个长整型范围内的非负整数。输出格式:从高位开始逐位输出该整数的各位数字,每个数字后面有一个空格
本题要求编写程序,对输入的一个整数,从高位开始逐位分割并输出它的各位数字.输入格式:输入在一行中给出一个长整型范围内的非负整数.输出格式:从高位开始逐位输出该整数的各位数字,每个数字后面有一个空格 1 ...
- 网络上连接的计算机必须要安装,[单选] Windows XP中提供了三种组件,实现不同的网络功能。如果计算机需要连接到Internet,必须安装()。...
[单选] Windows XP中提供了三种组件,实现不同的网络功能.如果计算机需要连接到Internet,必须安装(). 更多相关问题 [单选] 乙炔与空气或氧气混合达到自燃温度在()下也能爆炸 [单 ...
- 为什么枚举与整型不能互相转换?
语法上它们可以互相转换,但在域的范围内并不能等同. 枚举语法糖果 带类型的整型: 域的范围比整型小. 为什么枚举能转换整型? 枚举是整型子集,意味着枚举可以被整型一一对应,这就是为什么枚举能转换整型的 ...
- C语言基本数据类型笔记整理(整型、实型/浮点型、字符型、枚举型、构造类型、指针类型、空类型)
C语言基本数据类型 一.整型 ①有符号整型 ②无符号整型 二.实型 三.字符型 四.枚举型 五.构造类型 ①数组 ②结构体 ③共用体 六.指针类型 七.空类型 一.整型 ①有符号整型 有符号整型 关键 ...
- C语言中 枚举变量与枚举值,枚举类型变量再赋值问题
1.枚举定义及其使用 1.1 定义 枚举是一种特殊的整型,关键词为enum,将变量的值一一列举出来,变量的值只限于列举出来的值的范围内 1.2 使用 枚举的定义使用 enum msgtype { eo ...
- 浮点型数据2字节_C语言进阶之路:数据类型 - 整型、字符型和浮点型的扩展!...
整型 int 可添加 short 和 long: short int: 简为 short; long int: 简为 long; long long int: 简为 long long 它们都可以再添 ...
- C语言中无符号数和有符号数之间的比较和运算
学C语言的同学看看以下代码运行结果会多少 源代码 #include <stdio.h> void main(void) {unsigned char uchar_num = 1;char ...
最新文章
- ExtJs学习笔记(3)_GridPanel[XML做数据源]
- 软考-信息系统项目管理师-信息系统安全管理
- CRM_ORGMAN_CHECK_OW
- (转)SystemProcessesAndThreadsInformation
- IE下var丢失造成的错误
- 前端学习(1258):then参数中的函数返回值
- 域环境下文件服务器,域和文件服务器
- mysql数据库序列作用_MySQL 序列使用
- 放肆的使用UIBezierPath和CAShapeLayer画各种图形
- .net Core使用RabbitMQ
- PDF加密、解密内幕(三) -破解加密PDF文件
- 屏蔽 NVIDIA 显卡
- win10卸载ie11后安装不上
- 10家不错的iphone编程资源站
- ovftool导出虚拟机报错处理过程!
- 在WIN10下通过网口给华为海思Hi3516DV300刷机(鸿蒙系统)
- Java.Canvas
- 安全多方计算与证券业数据生态
- 为什么要标准化用户故事格式?
- 舞台音效控制软件_苹果舞台现场演奏音效控制工具 MainStage 3 v3.3.1