需求 : 枚举类型在界面显示的时候可以显示相应的中文信息, 这样界面对用户友好 .场景 : 在一些业务中涉及到审核功能的时候, 往往有这几个状态 :未送审 , 审核中 ,审核通过, 驳回 . 这个时候我们会定义一个枚举类型来描述 : 在C#编程中,枚举(Enum)是一种强大的工具,用于定义一组相关的命名常量。在某些场景下,特别是涉及到用户界面(UI)交互时,我们可能需要将枚举值以更友好的方式呈现,例如使用中文描述。本文将详细探讨如何在C#中实现枚举类型支持显示中文的扩展,以便在UI上提供清晰易懂的状态信息。 我们需要定义一个枚举类型,以满足业务中的审核状态需求。例如,我们可以创建一个名为`AuditEnum`的枚举: ```csharp public enum AuditEnum { [Description("未送审")] Holding = 0, [Description("审核中")] Auditing = 1, [Description("审核通过")] Pass = 2, [Description("驳回")] Reject = 3 } ``` 在这个枚举中,我们使用了`DescriptionAttribute`来自定义每个枚举值的中文描述。`DescriptionAttribute`是C#中的元数据特性,允许我们附加额外的信息到类、方法、属性等元素上。在这里,它被用来存储每个状态的中文描述。 为了在实际应用中获取这些中文描述,我们需要自定义一个服务类,比如`EnumService.cs`,包含一个静态方法`GetDescription()`,该方法接收一个枚举值,并返回其对应的描述: ```csharp public class EnumService { public static string GetDescription(Enum obj) { string objName = obj.ToString(); Type t = obj.GetType(); FieldInfo fi = t.GetField(objName); DescriptionAttribute[] arrDesc = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false); return arrDesc[0].Description; } } ``` 这个方法通过反射获取枚举值的字段信息,并从中提取`DescriptionAttribute`的描述内容。 接下来,当需要在UI上展示枚举值时,我们调用`EnumService.GetDescription()`。以ASP.NET为例,假设有一个`Repeater`控件用于显示审核状态,我们可以在`OnItemDataBound`事件处理程序中动态设置`Literal`控件的文本: ```csharp protected void AuditRepeater_OnItemDataBound(object sender, RepeaterItemEventArgs arg) { if (arg.Item.ItemType == ListItemType.Item) { Literal audit = arg.Item.FindControl("AuditText") as Literal; AuditEnum ae = AuditEnum.Pass; // 根据项目的实际情况赋值 audit.Text = EnumService.GetDescription(ae); } } ``` 这样,当页面加载时,`AuditText`控件将显示与`ae`对应的中文描述,而不是枚举的原始值。 总结来说,要在C#中实现枚举类型支持显示中文,我们需要: 1. 定义枚举并使用`DescriptionAttribute`添加中文描述。 2. 创建一个服务类,如`EnumService`,提供一个方法获取枚举值的描述。 3. 在UI层调用该服务类的方法,将枚举值转换为对应的中文描述。 通过这种方式,我们可以确保枚举类型的用户界面友好性,使得非开发人员也能轻松理解系统状态,从而提升用户体验。同时,这样的设计也保持了代码的清晰和可维护性。




























- 粉丝: 4
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- ORACLE数据备份与数据恢复专项方案.doc
- 物体检测、图像分类在线API服务框架,从小宠物识别入手
- 电子商务案例分析教学大纲.doc
- 系统软件用户手册模板.doc
- Python电子教案41程序的控制结构省公共课一等奖全国赛课获奖课件.pptx
- weblogic与tuxedo配置详解.doc
- 企业网站六大功效介绍.doc
- 办公软件操作培训PPT.ppt
- 大数据的十大来源及其应用价值.doc
- 单片机IO扩展8155(课堂PPT).ppt
- 校园宽带网络设计方案.doc
- 数学软件Matlab专题培训.pptx
- 互联网对人们生活的影响PPT学习课件.ppt
- 基于单片机的电子密码锁及程序.doc
- 计算机病毒的特点.doc
- 计算机网络基础安全知识优秀PPT.ppt


