国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

關于c#中枚舉類型支持顯示中文的擴展說明

2020-01-24 03:35:01
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:

AuditEnum.cs :

public enum AuditEnum
{
   Holding=0,
  
    Auditing=1,

    Pass=2,

    Reject=3     
}

以asp.net為例 , 程序中某個方法可能會這樣使用枚舉值 :
public void HandleAudit(int userID, AuditEnum ae)
{
  if (ae==AuditEnum.Pass)
  {
    //do something
  }
  else if (ae==AuditEnum.Reject)
  {
    //do other something
  }
}

asp.net頁面往往需要顯示中文枚舉信息 :    

 


序號
項目
 狀態
 審核人

請假單
 審核通過
 張三


解決方法 : 給枚舉項增加DescriptionAttribute后利用反射來獲取中文信息.

步驟 :

1 . 在定義枚舉AuditEnum的類中添加名稱空間System.ComponentModel , 給每個枚舉項加DescriptionAttribute , 示例代碼如下 :

復制代碼 代碼如下:

using System.ComponentModel;

public enum AuditEnum
{
    [Description("未送審")]
    Holding=0,  

  [Description("審核中")]
    Auditing=1,

    [Description("審核通過")]
    Pass=2,

    [Description("駁回")]
    Reject=3     
}


2 . 自定義一個類EnumService.cs , 增加靜態方法GetDescription()根據傳入的枚舉值來讀取Description信息 , 示例代碼如下 :

復制代碼 代碼如下:

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;
    }
}


3 . 在輸出枚舉值的地方增加對EnumService.GetDescription()的調用 , 示例代碼如下 :

復制代碼 代碼如下:

asp.net頁面代碼:
<asp:Repeater ID="AuditRepeater" runat="server" OnItemDataBound="AuditRepeater_OnItemDataBound">
     <ItemTemplate>
         //something ui code is here ....
         <asp:Literal ID="AuditText" runat="server"></asp:Literal>
         //something ui code is here ....
     </ItemTemplate>
</asp:Repeater>


asp.net頁面后臺代碼:
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; //根據項目的實際情況賦值,這里為簡化賦值AuditEnum.Pass           
            audit.Text = EnumService.GetDescription(we);
        }
}


全文完 .

以上代碼運行于VS2010 , 有任何問題請在下方留言 , 喜歡就點推薦.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东乌| 通榆县| 深泽县| 行唐县| 阿克苏市| 渝北区| 杭锦后旗| 堆龙德庆县| 自治县| 神池县| 双峰县| 甘洛县| 都安| 东乡族自治县| 潍坊市| 浦北县| 蒲江县| 漳浦县| 平阳县| 淮南市| 邳州市| 朝阳区| 无为县| 桦甸市| 永仁县| 余江县| 贵定县| 大厂| 松桃| 酒泉市| 韩城市| 绥德县| 蒲江县| 闽清县| 鄂托克旗| 资阳市| 密山市| 凤山市| 通州市| 高碑店市| 会昌县|