VC.NET数据库应用程序设计第8章 泛型与集合

上传人:w****i 文档编号:92370160 上传时间:2019-07-09 格式:PPT 页数:25 大小:1.26MB
返回 下载 相关 举报
VC.NET数据库应用程序设计第8章 泛型与集合_第1页
第1页 / 共25页
VC.NET数据库应用程序设计第8章 泛型与集合_第2页
第2页 / 共25页
VC.NET数据库应用程序设计第8章 泛型与集合_第3页
第3页 / 共25页
VC.NET数据库应用程序设计第8章 泛型与集合_第4页
第4页 / 共25页
VC.NET数据库应用程序设计第8章 泛型与集合_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《VC.NET数据库应用程序设计第8章 泛型与集合》由会员分享,可在线阅读,更多相关《VC.NET数据库应用程序设计第8章 泛型与集合(25页珍藏版)》请在金锄头文库上搜索。

1、VC#.NET数据库应用程序设计,知识点: ArrayList 堆栈 队列 泛型,知识点及重难点,重点 泛型 难点 泛型,认识变长数组ArrayList,ArrayList是较为复杂的一维数组,其容量可根据需要自动扩充 ArrayList的使用与一般的数组原理上是相同的 ArrayList的元素属于 Object 类型,所以在存储或检索值时要进行类型转换,即进行装箱和拆箱操作。 ArrayList位于名称空间System.Collections。,使用ArrayList,创建ArrayList对象 ArrayList 对象名 = new ArrayList(); 为ArrayList对象添加元

2、素 对象名.Add(); 获取ArrayList对象的元素 对象名索引号 举例: ArrayList OurXueHao = new ArrayList(); OurXueHao.Add(“Hello”); string myXueHao = OurXueHao0.ToString();,哈希表(HashTable),哈希表(HashTable)表示键/值对的集合,每个键 /值对都是哈希表的一个元素,所有元素根据键的哈希代码进行组织。,使用HashTable,创建HashTable对象 HashTable 对象名 = new HashTable(); 为HashTable对象添加元素 哈希表对

3、象.Add(关键字,关键字的值); 举例: Hashtable StudentInfo = new Hashtable(); StudentInfo.Add(1,100); StudentInfo.Add(xsXH, xsInfo),获取HashTable元素,不知道关键字 foreach (DictionaryEntry 变量名 in HashTable对象名) 用“变量名.Key”获取关键字 用“变量名.Value”获取键的值 知道关键字 哈希表对象名关键字,堆栈 Stack,堆栈是表示对象的后进先出集合,限定仅在表的一端进行插入或删除操作,而且是按后进先出(或先进后出)的原则进行操作。

4、只能插入和删除操作的一端称为栈顶top,而另一端称为栈底bottom。,使用Stack,堆栈的实例化 (堆栈在使用之前必须进行实例化 ) Stack mystack = new Stack(); 入栈 :在栈顶插入 一个元素 堆栈对象名.Push(数据); 出栈 :删除栈顶元素并返回该值,类型为object型。 堆栈对象名.Pop(); 例如: Stack mystack = new Stack(); mystack.Push(100); string stackdata = mystack.Pop().ToString();,队列 Queue,队列是表示对象的先进先出、后进后出集合,在队尾进

5、行插入操作,在队头进行删除操作。,使用队列 Queue,队列的实例化 (队列在使用之前必须进行实例化 ) Queue 对象名 = new Queue (); 入队 :在队尾插入 一个元素 队列对象名. Enqueue (数据); 出队 :删除队头元素并返回该值,类型为object型。 队列对象名. Dequeue(); 例如: Queue Waiters = new Queue(); Waiters.Enqueue(100); string WaiteBus = Waiters.Dequeue().ToString();,泛型,泛型是指将方法的类型参数化以达到代码复用提高软件开发工作效率的一种

6、数据类型。它是一种类型占位符,或称之为类型参数。 在方法中,一个变量的值可以作为参数,但其实这个变量的类型本身也可以作为参数。泛型允许我们在调用的时候再指定这个类型参数是什么。 在.net中,泛型能够给我们带来的两个明显好处是类型安全和减少装箱、拆箱。,泛型认识,比较两个方法: private int maxint(int x, int y, int z) private T MaxGeneric(T x, T y, T z) 这两个方法都实现求三个数的最大数,但第二个方法在方法名MaxGeneric后面添加了(这里的T只有一个变量,实际上可以有多个,比如),并将第一个方法maxint中固定的

7、类型名int用T来代替。然后这个T就可以像int、double、object等等一样作为虚的类型名,来完成相关功能。 在这里,T就是类型参数,起到占位符的作用,在实际调用时,会有一个真正的类型名称来代替T。如: string m1= MaxGeneric(data1, data2, data3).ToString(); String m2= MaxGeneric(data1, data2, data3).ToString();,为什么要使用泛型,从上面的第一个方法 private int maxint(int x, int y, int z)中可以看出,3个形参和返回值的类型都被固定死了为in

8、t,因此这个方法只能求3个整数的最大值,返回整数最大值。 当程序调用这个方法时,需要提供int型参数,如: int maxvalue = maxint(10, 20, 300); 当求float和double类型数据的最大值时,该怎么办呢? 在方法中传入通用的数据类型,这样不就可以用于所有的数据类型了吗?泛型就是专门用来解决这个问题的。,定义泛型方法,private void swaptwo(ref T x, ref T y) T temp = x; x = y; y = temp; ,调用泛型方法,暂定有一个按钮btnSwap、两个文本框txtInData1和txtInData2。,priv

9、ate void btnSwap_Click(object sender, EventArgs e) string str1 = txtInData1.Text; string str2 = txtInData2.Text; swaptwo( ref str1, ref str2); txtInData1.Text = str1; txtInData2.Text = str2; ,泛型集合类List,List其实就是对Array的进一步封装,并且扩展了Array的一些方法。 List 可以避免象ArrayList那样对元素检索时进行频繁地装箱和取消装箱操作;解决了ArrayList缺少编译时的

10、类型检查这个问题。,使用泛型集合类List,List mylist = new List(); mylist .Add (30); mylist .Add (100); string OutList = “; foreach (int myitem in mylist) OutList += myitem.ToString(); MessageBox.Show(OutList);,自定义泛型类,public class Students private T _name; private S _age; public T name get return _name; set _name = va

11、lue; public S age get return _age; 创建泛型类:在原来的类定义中包含尖括号 class 类名 ,T也可以是其他的标识符,只要符合C#的命名规则就行。 自定义泛型类还可以包含多个类型,用逗号分隔: class 类名 定义了这种类型后,就可以在类中像使用其他类型那样使用它们,将它们用作类成员变量、属性和方法的参数类型等。 set _age = value; public Students(T Name, S Age) name = Name; age = Age; ,自定义泛型类,泛型的约束,泛型约束就是对泛型类的类型加以约束,这样可以给编程带来很大的灵活性。 要

12、对类型参数进行约束,可使用泛型的where,如: private T MaxGeneric(T x, T y, T z) where T:IComparable 泛型的Where对类型参数进行限定,通常有以下几种方式:,where T : struct 限制类型参数T必须继承自System.ValueType,即值类型。 where T : class 限制类型参数T必须是引用类型,也就是不能继承自System.Value Type。 where T : new() 限制类型参数T必须有一个无参的构造函数 where T : NameOfClass 限制类型参数T必须继承自某个类或实现某个接口。,泛型的约束,小结,ArrayList 堆栈 队列 泛型,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号