对象枚举的实现

隐藏行号 复制代码 对象枚举实例代码.
  1.  
  2. /// 
    
  3. /// 邮箱状态
    
  4. /// 
    
  5. public class EmailStates
    
  6. {
    
  7.     static EmailStates()
    
  8.     {
    
  9.         Init();
    
  10.         CheckID();
    
  11.     }
    
  12.     private static List<EmailState> _EmailStateList = new List<EmailState>();
    
  13.     public static List<EmailState> EmailStateList
    
  14.     {
    
  15.         get
    
  16.         {
    
  17.             return _EmailStateList;
    
  18.         }
    
  19.     }
    
  20.  
  21.     private static void Init()
    
  22.     {
    
  23.         Type type = typeof(EmailStates);
    
  24.         FieldInfo[] fields = type.GetFields(BindingFlags.Static | BindingFlags.Public);
    
  25.         foreach (FieldInfo field in fields)
    
  26.         {
    
  27.             EmailState es = (EmailState)field.GetValue(null);
    
  28.             _EmailStateList.Add(es);
    
  29.         }
    
  30.     }
    
  31.     private static void CheckID()
    
  32.     {
    
  33.         for (int i = 0; i < _EmailStateList.Count; i++)
    
  34.         {
    
  35.             EmailState es = _EmailStateList[i];
    
  36.             for (int j = i + 1; j < _EmailStateList.Count; j++)
    
  37.             {
    
  38.                 if (es.Id == _EmailStateList[j].Id)
    
  39.                 {
    
  40.                     throw new Exception("不能有相同的ID");
    
  41.                 }
    
  42.             }
    
  43.         }
    
  44.     }
    
  45.     public static EmailState GetEmailStateByName(string name)
    
  46.     {
    
  47.         foreach (EmailState es in _EmailStateList)
    
  48.         {
    
  49.             if(es.Name==name)
    
  50.             {
    
  51.                 return es;
    
  52.             }
    
  53.         }
    
  54.         return null;
    
  55.     }
    
  56.     public static EmailState GetEmailStateById(int id)
    
  57.     {
    
  58.         foreach (EmailState es in _EmailStateList)
    
  59.         {
    
  60.             if (es.Id == id)
    
  61.             {
    
  62.                 return es;
    
  63.             }
    
  64.         }
    
  65.         return null;
    
  66.     }
    
  67.  
  68.     public static readonly EmailState 未使用 = new EmailState(1, "未使用");
    
  69.     public static readonly EmailState 已使用 = new EmailState(2, "已使用");
    
  70. }
    
  71. public class EmailState
    
  72. {
    
  73.     private int _Id;
    
  74.     private string _Name;
    
  75.     public int Id
    
  76.     {
    
  77.         get{
    
  78.             return _Id;
    
  79.         }
    
  80.     }
    
  81.     public string Name
    
  82.     {
    
  83.         get{
    
  84.             return _Name;
    
  85.         }
    
  86.     }
    
  87.     public EmailState(int id,string name)
    
  88.     {
    
  89.         _Id = id;
    
  90.         _Name = name;
    
  91.     }
    
  92. }
    
<script language="javascript"> function CopyCode(key){var codeElement=null;var trElements=document.all.tags("ol");var i;for(i=0;i 以上是对象枚举的一个实例代码,主要是实现邮箱的状态表示.这样写的好处是可以像枚举一样访问对象,并能很方便的将数据绑定到控件上.还有很多其他好处,自己慢慢体会吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值