TP7C#泛型详解.pptxVIP

  • 5
  • 0
  • 约 21页
  • 2016-12-19 发布于湖北
  • 举报
泛型本章目标使用泛型接口对象集合缺点装箱、拆箱性能降低类型安全 泛型关于object类型:object类型可以来引用任何类型的实例;object类型可以存储任何类型的值;可以定义object类型的参数;可以把object作为返回类型。但是--这样做有很大的问题会因为程序员没有记住使用的类型而出错,造成类型不兼容;值类型和引用类型的互化即装箱拆箱使系统性能下降C#就提出,泛型就是避免强制类型转换,减少装箱拆箱提高性能,减少错误。什么是泛型集合泛型最常见的用途是创建集合类泛型集合可以约束集合内的元素类型典型泛型集合ListT,DictionaryK,VT、K,V表示该泛型集合中的元素类型ListStudentStudent对象Teacher对象允许添加不允许添加Student对象无需转换类型引入命名空间:System.Collections.GenericListStudentstudents=newListStudent();利用ListStudent存储班级集合ListT的使用students.Add(scofield);…students.Add(jacky);将Student对象加入班级将Teacher对象加入班级编译出错foreach(Studentstuinstudents){Console.WriteLine(stu.Name);}不需类型转换遍历ListStudent集合只能保存Student对象使用泛型集合ListTStudentstu1=students[2];stu1.SayHi();Students.RemoveAt(0);//ListStudent方式foreach(Studentstuinstudents){Console.WriteLine(stu.Name);}ListT的访问方式与ArrayList相同使用索引访问,无需类型转换利用索引删除遍历时不需要类型转换ListT与ArrayList访问ListT与ArrayList的对比泛型Dictionary我们经常性的操作数据信息时往往用HashTable来存储将要写入到数据库或者返回的信息,在这之间要不断的进行类型的转化,他给我们的帮助应该是非常大的,如果我们操纵的数据类型相对确定的话。 用DictionaryTKey,TValue集合类来存储数据就方便多了,例如我们需要在电子商务网站中存储用户的购物车信息(商品名,对应的商品个数)时,完全可以用Dictionarystring,int来存储购物车信息,而不需要任何的类型转化。DictionaryK,V与哈希表访问DictionaryK,V与哈希表的对比DictionaryK,V概述DictionaryK,V具有ListT相同的特性K,V约束集合中元素类型编译时检查类型约束无需装箱拆箱操作与哈希表类似存储Key和Value的集合常用属性属性说明Comparer获取用于确定字典中的键是否相等的IEqualityComparer。Count获取包含在Dictionary中的键/值对的数目。Item获取或设置与指定的键相关联的值。Keys获取包含Dictionary中的键的集合。Values获取包含Dictionary中的值的集合。常用的方法方法说明Add将指定的键和值添加到字典中。Clear从Dictionary中移除所有的键和值。ContainsKey确定Dictionary是否包含指定的键。ContainsValue确定Dictionary是否包含特定值。Equals 已重载。确定两个Object实例是否相等。(从Object继承。)GetEnumerator返回循环访问Dictionary的枚举数。GetHashCode 用作特定类型的哈希函数。GetHashCode适合在哈希算法和数据结构(如哈希表)中使用。(从Object继承。)GetObjectData实现System.Runtime.Serialization.ISerializable接口,并返回序列化Dictionary实例所需的数据。GetType 获取当前实例的Type。(从Object继承。)OnDeserialization实现System.Runtime.Serialization.ISerializable接口,并在完成反序列化之后引发反序列化事件。ReferenceEquals确定指定的Object实例是否是相同的实例。(从Object继承。)Remove从Dictionary中移除所指定的键的值。ToString 返回表示当前Object的String。(从Object继承。)TryGetValue 获取与指定的键相关联的值DictionaryK,V的使用students.Add(scofield.Name,scofie

文档评论(0)

1亿VIP精品文档

相关文档