本帖最后由 songwenqi 于 2014-11-28 13:06 编辑  
 
【分布式系统框架教程】-怎么样使用静态集合  
导读部分  
 
  
 教程部分  
 静态集合,顾名思义,就是使用了static这个关键字,由于使用静态集合,在程序运行的时候就已经实例化,所以在读取上是极其方便和快速的。 下面以Gender.cs类为例: [C#] 纯文本查看 复制代码  public class Gender
    {
        public static Dictionary<int, Item> Dict
        {
            get { return dict; }
        }
        private static Dictionary<int, Item> dict = new Dictionary<int, Item>();
        static Gender()
        {
            dict.Add(1, new Item { ID = 1, Name = "男", EName = "Male" });
            dict.Add(2, new Item { ID = 2, Name = "女", EName = "Female" });
        }
        public static Item GetItem(int id)
        {
            Item item;
            if (dict.TryGetValue(id, out item))
            {
                return item;
            }
            return new Item { ID = id, Name = null };
        }
    } 
Item.cs类 
[C#] 纯文本查看 复制代码 public class Item
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public string EName { get; set; }
        public Dictionary<int, Item> Children { get; set; }
        public Item Parent { get; set; }
        public List<string > DominList { get; set; }
        public void AddChild(Item child)
        {
            Children.Add(child.ID, child);
            child.Parent = this;
        }
        public override string ToString()
        {
            var str = "ID:" + ID;
            if (!string.IsNullOrWhiteSpace(Name))
            {
                str += ", Name:\"" + Name + "\"";
            }
            if (!string.IsNullOrWhiteSpace(EName))
            {
                str += ", EName:\"" + EName + "\"";
            }
            if (Children != null && Children.Count > 0)
            {
                str += ", Children:" + Children.Count;
            }
            return str;
        }
    }前端在提取时可以使用:  [C#] 纯文本查看 复制代码 List<Item> GenderList = Gender.Dict.Values.ToList();
 GetOptions(ddlGender, GenderList);
public void GetOptions(HtmlSelect select,List<Item> list)
        {
            foreach (Item item in list)
            {
                select.Items.Add(new ListItem(item.Name, item.ID.ToString()));
            }
           
        }这样就可以得到性别静态集合的数据,这样就可以很轻易的初始化下拉控件了, 其他对应的星座、民族等静态集合也是如此,很简单的就实现了查询。 效果图: 
 
 
 
下面再介绍一下如何使用: 在UserInfo类 [C#] 纯文本查看 复制代码 /// <summary>
    /// 用户基类
    /// </summary>
    public class UserInfo 
    {/// <summary>
        /// 用户性别
        /// </summary>
        public int Sex { get; set; }
        /// <summary>
        /// 获取用户性别汉字
        /// </summary>
        /// <returns>汉字男或者女</returns>
        public string GetSex()
        {
            return Gender.GetItem(Sex).Name;
        }
}对了,就是这么简单,就可以在对象中很方便的提取用户的性别汉字,其他对应的民族、星座类的静态集合方法是一样的,当然这里我所列举的例子是最简单的一种使用,也许看不出它的优势,但是在省市区的静态集合中它的亮点就会一点点被展示出来,大家可以购买源码研究,那么静态集合的使用就介绍到这,分布式框架教程,到此也算告一段落,大家有什么问题的可以留言,只要我能解决的,我会一一回复的,谢谢了。   
 |