代码如下:
一个泛型应用的学习(引用)_hiveusing System;
一个泛型应用的学习(引用)_hiveusing System.Collections;
一个泛型应用的学习(引用)_hive
一个泛型应用的学习(引用)_hivenamespace ConsoleApplication_test
一个泛型应用的学习(引用)_泛型_05一个泛型应用的学习(引用)_hive_06一个泛型应用的学习(引用)_泛型_07{
一个泛型应用的学习(引用)_泛型_08    public class Member
一个泛型应用的学习(引用)_hive_09一个泛型应用的学习(引用)_泛型_10    一个泛型应用的学习(引用)_泛型_07{
一个泛型应用的学习(引用)_泛型_08        private string _name;
一个泛型应用的学习(引用)_泛型_08
一个泛型应用的学习(引用)_hive_09一个泛型应用的学习(引用)_泛型_10        public Member() 一个泛型应用的学习(引用)_泛型_07{ }
一个泛型应用的学习(引用)_泛型_08        public Member(string name)
一个泛型应用的学习(引用)_hive_09一个泛型应用的学习(引用)_泛型_10        一个泛型应用的学习(引用)_泛型_07{
一个泛型应用的学习(引用)_泛型_08            _name = name;
一个泛型应用的学习(引用)_hive_22        }
一个泛型应用的学习(引用)_泛型_08
一个泛型应用的学习(引用)_泛型_08        public string Name
一个泛型应用的学习(引用)_hive_09一个泛型应用的学习(引用)_泛型_10        一个泛型应用的学习(引用)_泛型_07{
一个泛型应用的学习(引用)_hive_09一个泛型应用的学习(引用)_泛型_10            get 一个泛型应用的学习(引用)_泛型_07{ return _name; }
一个泛型应用的学习(引用)_hive_09一个泛型应用的学习(引用)_泛型_10            set 一个泛型应用的学习(引用)_泛型_07{ _name = value; }
一个泛型应用的学习(引用)_hive_22        }
一个泛型应用的学习(引用)_泛型_08
一个泛型应用的学习(引用)_泛型_08        public override bool Equals(object obj)
一个泛型应用的学习(引用)_hive_09一个泛型应用的学习(引用)_泛型_10        一个泛型应用的学习(引用)_泛型_07{
一个泛型应用的学习(引用)_泛型_08            Member member = (Member)obj;
一个泛型应用的学习(引用)_泛型_08            return (_name == member.Name) ? true : false;
一个泛型应用的学习(引用)_hive_22        }
一个泛型应用的学习(引用)_泛型_08
一个泛型应用的学习(引用)_泛型_08        public override int GetHashCode()
一个泛型应用的学习(引用)_hive_09一个泛型应用的学习(引用)_泛型_10        一个泛型应用的学习(引用)_泛型_07{
一个泛型应用的学习(引用)_泛型_08            return base.GetHashCode();
一个泛型应用的学习(引用)_hive_22        }
一个泛型应用的学习(引用)_泛型_08
一个泛型应用的学习(引用)_泛型_08        public static bool operator ==(Member member1, Member member2)
一个泛型应用的学习(引用)_hive_09一个泛型应用的学习(引用)_泛型_10        一个泛型应用的学习(引用)_泛型_07{
一个泛型应用的学习(引用)_泛型_08            return member1.Equals(member2) ? true : false;
一个泛型应用的学习(引用)_hive_22        }
一个泛型应用的学习(引用)_泛型_08
一个泛型应用的学习(引用)_泛型_08        public static bool operator !=(Member member1, Member member2)
一个泛型应用的学习(引用)_hive_09一个泛型应用的学习(引用)_泛型_10        一个泛型应用的学习(引用)_泛型_07{
一个泛型应用的学习(引用)_泛型_08            return !(member1 == member2);
一个泛型应用的学习(引用)_hive_22        }
一个泛型应用的学习(引用)_hive_22    }
一个泛型应用的学习(引用)_泛型_08    public class Members : CollectionBase
一个泛型应用的学习(引用)_hive_09一个泛型应用的学习(引用)_泛型_10    一个泛型应用的学习(引用)_泛型_07{
一个泛型应用的学习(引用)_泛型_08        public Member this[int index]
一个泛型应用的学习(引用)_hive_09一个泛型应用的学习(引用)_泛型_10        一个泛型应用的学习(引用)_泛型_07{
一个泛型应用的学习(引用)_hive_09一个泛型应用的学习(引用)_泛型_10            get 一个泛型应用的学习(引用)_泛型_07{ return (Member)List[index]; }
一个泛型应用的学习(引用)_hive_09一个泛型应用的学习(引用)_泛型_10            set 一个泛型应用的学习(引用)_泛型_07{ List[index] = value; }
一个泛型应用的学习(引用)_hive_22        }
一个泛型应用的学习(引用)_泛型_08
一个泛型应用的学习(引用)_泛型_08        public int IndexOf(Member member)
一个泛型应用的学习(引用)_hive_09一个泛型应用的学习(引用)_泛型_10        一个泛型应用的学习(引用)_泛型_07{
一个泛型应用的学习(引用)_泛型_08            return this.List.IndexOf(member);
一个泛型应用的学习(引用)_hive_22        }
一个泛型应用的学习(引用)_泛型_08
一个泛型应用的学习(引用)_泛型_08        public void Add(Member member)
一个泛型应用的学习(引用)_hive_09一个泛型应用的学习(引用)_泛型_10        一个泛型应用的学习(引用)_泛型_07{
一个泛型应用的学习(引用)_泛型_08            this.List.Add(member);
一个泛型应用的学习(引用)_hive_22        }
一个泛型应用的学习(引用)_泛型_08
一个泛型应用的学习(引用)_泛型_08        public void Remove(Member member)
一个泛型应用的学习(引用)_hive_09一个泛型应用的学习(引用)_泛型_10        一个泛型应用的学习(引用)_泛型_07{
一个泛型应用的学习(引用)_泛型_08            if (this.IndexOf(member) != -1)
一个泛型应用的学习(引用)_泛型_08                List.Remove(member);
一个泛型应用的学习(引用)_hive_22        }
一个泛型应用的学习(引用)_hive_22    }
一个泛型应用的学习(引用)_泛型_08
一个泛型应用的学习(引用)_泛型_08
一个泛型应用的学习(引用)_泛型_08    class Program
一个泛型应用的学习(引用)_hive_09一个泛型应用的学习(引用)_泛型_10    一个泛型应用的学习(引用)_泛型_07{
一个泛型应用的学习(引用)_泛型_08        static void Main_test()
一个泛型应用的学习(引用)_hive_09一个泛型应用的学习(引用)_泛型_10        一个泛型应用的学习(引用)_泛型_07{
一个泛型应用的学习(引用)_泛型_08            Members members = new Members();
一个泛型应用的学习(引用)_泛型_08            // insert
一个泛型应用的学习(引用)_泛型_08            members.Add(new Member("Clare"));
一个泛型应用的学习(引用)_泛型_08            members.Add(new Member("Jessie"));
一个泛型应用的学习(引用)_泛型_08            members.Add(new Member("Jingyi"));
一个泛型应用的学习(引用)_泛型_08
一个泛型应用的学习(引用)_泛型_08            // modify
一个泛型应用的学习(引用)_泛型_08            int index = members.IndexOf(new Member("Clare"));
一个泛型应用的学习(引用)_泛型_08            if (index != -1)
一个泛型应用的学习(引用)_hive_09一个泛型应用的学习(引用)_泛型_10            一个泛型应用的学习(引用)_泛型_07{
一个泛型应用的学习(引用)_泛型_08                members[index] = new Member("Jessie");
一个泛型应用的学习(引用)_hive_22            }
一个泛型应用的学习(引用)_泛型_08
一个泛型应用的学习(引用)_泛型_08            // delete
一个泛型应用的学习(引用)_泛型_08            members.Remove(new Member("Clare"));
一个泛型应用的学习(引用)_泛型_08
一个泛型应用的学习(引用)_泛型_08            // search
一个泛型应用的学习(引用)_泛型_08            if (index != -1) members.RemoveAt(index);
一个泛型应用的学习(引用)_泛型_08
一个泛型应用的学习(引用)_泛型_08            foreach (Member member in members)
一个泛型应用的学习(引用)_hive_09一个泛型应用的学习(引用)_泛型_10            一个泛型应用的学习(引用)_泛型_07{
一个泛型应用的学习(引用)_泛型_08                Console.WriteLine(member.Name);
一个泛型应用的学习(引用)_hive_22            }
一个泛型应用的学习(引用)_泛型_08
一个泛型应用的学习(引用)_泛型_08            Console.ReadLine();
一个泛型应用的学习(引用)_hive_22        }
一个泛型应用的学习(引用)_hive_22    }
一个泛型应用的学习(引用)_html_144}
一个泛型应用的学习(引用)_hive

2.0下面可以优化,精简
一个泛型应用的学习(引用)_hiveusing System;
一个泛型应用的学习(引用)_hiveusing System.Collections.ObjectModel;
一个泛型应用的学习(引用)_hive
一个泛型应用的学习(引用)_hivenamespace ConsoleApplication_test
一个泛型应用的学习(引用)_泛型_05一个泛型应用的学习(引用)_hive_06一个泛型应用的学习(引用)_泛型_07{
一个泛型应用的学习(引用)_泛型_08    public class Members_test : Collection<Member>
一个泛型应用的学习(引用)_hive_09一个泛型应用的学习(引用)_泛型_10    一个泛型应用的学习(引用)_泛型_07{
一个泛型应用的学习(引用)_泛型_08
一个泛型应用的学习(引用)_hive_22    }
一个泛型应用的学习(引用)_泛型_08
一个泛型应用的学习(引用)_泛型_08    class program1
一个泛型应用的学习(引用)_hive_09一个泛型应用的学习(引用)_泛型_10    一个泛型应用的学习(引用)_泛型_07{
一个泛型应用的学习(引用)_泛型_08        static void Main(string[] args)
一个泛型应用的学习(引用)_hive_09一个泛型应用的学习(引用)_泛型_10        一个泛型应用的学习(引用)_泛型_07{
一个泛型应用的学习(引用)_泛型_08            Members members = new Members();
一个泛型应用的学习(引用)_泛型_08            // insert
一个泛型应用的学习(引用)_泛型_08            members.Add(new Member("Clare"));
一个泛型应用的学习(引用)_泛型_08            members.Add(new Member("Jessie"));
一个泛型应用的学习(引用)_泛型_08            members.Add(new Member("Jingyi"));
一个泛型应用的学习(引用)_泛型_08
一个泛型应用的学习(引用)_泛型_08            // modify
一个泛型应用的学习(引用)_泛型_08            int index = members.IndexOf(new Member("Clare"));
一个泛型应用的学习(引用)_泛型_08            if (index != -1)
一个泛型应用的学习(引用)_hive_09一个泛型应用的学习(引用)_泛型_10            一个泛型应用的学习(引用)_泛型_07{
一个泛型应用的学习(引用)_泛型_08                members[index] = new Member("Jessie");
一个泛型应用的学习(引用)_hive_22            }
一个泛型应用的学习(引用)_泛型_08
一个泛型应用的学习(引用)_泛型_08            // delete
一个泛型应用的学习(引用)_泛型_08            members.Remove(new Member("Clare"));
一个泛型应用的学习(引用)_泛型_08
一个泛型应用的学习(引用)_泛型_08            // search
一个泛型应用的学习(引用)_泛型_08            if (index != -1) members.RemoveAt(index);
一个泛型应用的学习(引用)_泛型_08
一个泛型应用的学习(引用)_泛型_08            foreach (Member member in members)
一个泛型应用的学习(引用)_hive_09一个泛型应用的学习(引用)_泛型_10            一个泛型应用的学习(引用)_泛型_07{
一个泛型应用的学习(引用)_泛型_08                Console.WriteLine(member.Name);
一个泛型应用的学习(引用)_hive_22            }
一个泛型应用的学习(引用)_泛型_08
一个泛型应用的学习(引用)_泛型_08            Console.ReadLine();
一个泛型应用的学习(引用)_hive_22        }
一个泛型应用的学习(引用)_hive_22    }
一个泛型应用的学习(引用)_html_144}
一个泛型应用的学习(引用)_hive

Conclusion
泛型最基本的應用,也是最原始的應用,就是在container,若用OO,只能用多型(多態)的技術,讓container放Object type,進Container須轉型成Object,出Container需再轉回各type,若用泛型,就可直接將各type放進container,不需轉型,不只速度提升,且code也非常的精簡。