对象枚举的实现
来源:互联网 发布:ed视频编辑软件 编辑:程序博客网 时间:2024/06/03 02:43
///
/// 邮箱状态
///
public class EmailStates
{
static EmailStates()
{
Init();
CheckID();
}
private static List<EmailState> _EmailStateList = new List<EmailState>();
public static List<EmailState> EmailStateList
{
get
{
return _EmailStateList;
}
}
private static void Init()
{
Type type = typeof(EmailStates);
FieldInfo[] fields = type.GetFields(BindingFlags.Static | BindingFlags.Public);
foreach (FieldInfo field in fields)
{
EmailState es = (EmailState)field.GetValue(null);
_EmailStateList.Add(es);
}
}
private static void CheckID()
{
for (int i = 0; i < _EmailStateList.Count; i++)
{
EmailState es = _EmailStateList[i];
for (int j = i + 1; j < _EmailStateList.Count; j++)
{
if (es.Id == _EmailStateList[j].Id)
{
throw new Exception("不能有相同的ID");
}
}
}
}
public static EmailState GetEmailStateByName(string name)
{
foreach (EmailState es in _EmailStateList)
{
if(es.Name==name)
{
return es;
}
}
return null;
}
public static EmailState GetEmailStateById(int id)
{
foreach (EmailState es in _EmailStateList)
{
if (es.Id == id)
{
return es;
}
}
return null;
}
public static readonly EmailState 未使用 = new EmailState(1, "未使用");
public static readonly EmailState 已使用 = new EmailState(2, "已使用");
}
public class EmailState
{
private int _Id;
private string _Name;
public int Id
{
get{
return _Id;
}
}
public string Name
{
get{
return _Name;
}
}
public EmailState(int id,string name)
{
_Id = id;
_Name = name;
}
}
以上是对象枚举的一个实例代码,主要是实现邮箱的状态表示.这样写的好处是可以像枚举一样访问对象,并能很方便的将数据绑定到控件上.还有很多其他好处,自己慢慢体会吧
- 对象枚举的实现
- 定义对象的索引器 以及 实现枚举接口IEnumerable
- 对象的枚举
- 实现枚举的类
- 枚举的实现
- 二进制枚举的实现
- 枚举桌面的所有对象
- Java 枚举对象的使用
- 对象的创建和枚举
- usb总线枚举的实现
- 枚举单例的实现
- 枚举排序的MPI实现
- 实现接口的枚举类
- Python: Enum枚举的实现
- Python: Enum枚举的实现
- Java简单枚举的实现
- java 枚举的实现方法
- 实现接口的枚举类
- 汉诺塔
- Location.reload()
- 很好的地方
- 10个国外ajax/js网站
- C语言字符串函数解析
- 对象枚举的实现
- 23.2.1 Helix Server的获取
- parseInt()
- Dwr的配置与应用
- 排序算法
- Hibernate-Annotation初步
- WPF 数据绑定[1]
- 用HSSFWorkbook来对excel进行读操作
- 全面讲解Hibernate二级缓存