dotNET入门教程_5高级编程

更新时间:2023-07-24 18:44:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

dotNET入门教程_5高级编程

.NET Programming Advanced.NET Basic

dotNET入门教程_5高级编程

前置课程 本课程的学习需要以下预备知识:– 熟练使用 .NET 开发工具 Visual Studio 2010 – 掌握 C# 编程语言基础 – 掌握面向对象的基本概念

dotNET入门教程_5高级编程

单元内容 数据类型 - DataType 数据集合 - DataCollection 再论函数 - Function 又见对象 - Object

dotNET入门教程_5高级编程

单元目标 熟悉掌握数据类型转换方法 了解值类型与引用类型之间的区别 掌握数据集合的使用方法 掌握函数的参数传递方法 掌握递归函数的编写方法 深入了解面向对象原理 掌握设计模式的基本概念

dotNET入门教程_5高级编程

C# Advanced Programming

Data Type – 数据类型值类型与引用类型,装箱与拆箱,结构与类的区别

dotNET入门教程_5高级编程

Data Type – 数据类型回顾 – C#的数据类型Boolean Byte Char Decimal Double Int16 Int32 Int64 Sbyte Single UInt16 UInt32 UInt64 IntPtr UintPtr bool 布尔值 true 或 false byte 8位无符号整数 0到255 char 16位Unicode字符 decimal 128位高精度 double 64位双精度浮点数 short 16位有符号整数 -32768 ~ 32767 int 32位有符号整数 long 64位有符号整数 sbyte 8位有符号整数 float 32位单精度浮点数 ushort 16位无符号整数 unit 32位无符号整数 ulong 64位无符号整数 大小取决于平台的有符号整数(32位系统/64位系统) 取决于平台的无符号整数

dotNET入门教程_5高级编程

Data Type – 数据类型讨论 – 值类型与引用类型的区别值类型: 值类型代表基本数据类型,如整型或浮点型。 值类型分为三种:枚举、内建值类型、,用户定义的值类型(结构)

引用类型: 用类型包含一个指针,指向堆中存储对象本身的位置。 引用类型只包含引用,不包含实际的值,对方法体内参数所做的任何 修改都将影响传递给方法调用的引用类型的变量。 有两种引用类型在C#受到了特别重视:Object与String确定类型: 使用在Object类中定义的GetType()方法,返回一个Type对象。 使用typeof运算符做同样的事7

dotNET入门教程_5高级编程

Data Type – 数据类型结构 – 结构作为值类型的作用与用法结构是和类相似的一种封装构造,因为它可以包含数据、类型和函数成 员。但和类不同的是,结构是值类型,因此存放在内存中称为栈的地方。 结构通常用来存放简单数据类型。 public struct Complex { public double a; public double b; }

dotNET入门教程_5高级编程

Data Type – 数据类型结构 – 结构与类的区别结构存放在栈中并按值传递,和存放在堆中的类对象相比,它们具有性 能上的优势。 原因之一,值类型的分配优于引用类型。 原因之二,存放在栈中的值一离开作用域就立即被收回。不用等待垃圾 回收器来完成工作。 但是,如果把结构作为参数传递给一个方法,这种做法会成为一个问题。 当引用类型传递给方法时,传递

的只是对对象的引用。而对于结构,在 传递前要复制它的一个完整的副本。 和引用类型相比,结构越复杂,复制造成的性能开销越大。因此,结构 应该只用来表示小的数据结构。

dotNET入门教程_5高级编程

Data Type – 数据类型思考 – 什么是装箱与拆箱值类型和引用类型都是从Object类派生来的,这意 味着任何一个值类型都可以调用一个Object类方法: 值类型变量被隐式转换为引用类型时,称之为装箱, 反之称为拆箱 int j = 4; string str = j.ToString(); //装箱 int k = (int)str; //拆箱

dotNET入门教程_5高级编程

C# Advanced Programming

DataCollection– 数据集合泛型,多维数组,ArrayList,Hashtable,SortList,Stack,Queue

dotNET入门教程_5高级编程

DataCollection– 数据集合数组 – 多维数组创建一维数组 type[] arrayName; arrayName = new type[length]; 或者:type[] arrayName = new type[length]; 创建多维数组 type[,] arrayName = new type[numRows, numCols]; 创建更多维数组的方法是增中逗号的数量。 锯齿型数组 要创建一个行数固定,列数可变的二维锯齿形数,语法为: type[][] arrayName = new type[numrows][]; arrayName[0] = new type[numCols0]; arrayName[1] = new type[numCols1]; arrayName[2] = new type[numCols2];12

dotNET入门教程_5高级编程

DataCollection– 数据集合集合 – ArrayListArrayList是一个能根据需要动态增加大小的一维数组。ArrayList属于弱类型——它 们能包含任何托管类型的元素,而且不要所有元素都是相同的类型。 Count:返回元素数目 索引器:返回指定下标元素的引用 Add:添加元素,返回了对象所处位置的下标。 Clear:清空 Indexof:正向查找,未找到返回-1,找到时反回下标值 Insert:插入元素 LastIndexof:反向查找 Remove:删除指定的元素 RemoveAt:删除指定下标的元素 Reverse:反转 Sort:排序

dotNET入门教程_5高级编程

DataCollection– 数据集合集合–HashTable封装了一个键/值对的集合。它根据键的散列代码组织在一起。Hashtable中的每 一个元素都将是一个DictionaryEntry结构,而与键和值的类型无关。Hashtable不 能通过下标来访问。 Count:数量 Keys:散列表中所有的键 Values:散列表中所有的值 索引器:使用或设定指定key所代码的值。 Add:添加 Clear:清空 ContainsKey/ContainsValue:是否存在指定的键/值 Remove:移除

dotNET入门教程_5高级编程

DataCollection– 数据集合集合– SortedList封装了一个键/值对的集合,集合中的内容已按照键进行了排序。元素 可以通过键或下标来访问。 SortedList使用两个数组来存储列表的元素:一个用来存储键,另一个用 来存储值。键通常是字符串型的,并根据字母顺序来进行排序。 使用方法类似于Hashtable,多出以下内容: GetByIndex;返回对应于指定下标处元素的值 GetKey:返回对应于指定下标处元素的键

dotNET入门教程_5高级编程

DataCollection– 数据集合集合– Stack模仿了

一个简单的后进先出(LIFO)集合。 Count:返回栈中所包含的元素个数 Clear:删除所有的项 Peek:返回一个处于调用栈顶端的对象的引用,但不删除它。 Pop:返回并删除顶端的对象 Push:向栈中添加指定的对象

dotNET入门教程_5高级编程

DataCollection– 数据集合集合– Queue封装了一个先进先出(FIFO)的集合。 Count:返回队中所包含的元素个数 Clear:删除所有的项 Dequeue:删除并返回Queue在开始处的对象 Enqueue:向队的末端添加指定的对象 Peek:返回队头的一个对象引用,但不删除它。

dotNET入门教程_5高级编程

DataCollection– 数据集合泛型 – 什么泛型我们在编写程序时,经常遇到两个模块的功能非常 相似,只是一个是处理int数据,另一个是处理string 数据,或者其他自定义的数据类型,但我们没有办 法,只能分别写多个方法处理每个数据类型,因为 方法的参数类型不同。有没有一种办法,在方法中 传入通用的数据类型,这样不就可以合并代码了吗? 泛型的出现就是专门解决这个问题的。 泛型可以定义类型安全的数据结构,而无须使用实 际的数据类型。18

dotNET入门教程_5高级编程

DataCollection– 数据集合泛型 – 什么泛型public class Stack<T> { private T[] m_item; public T Pop(){...} public void Push(T item){...} public Stack(int i) { this.m_item = new T[i]; } }Stack<int> a = new Stack<int>(100); a.Push(10); a.Push("8888"); //这一行编译不通过, //因为类a只接收int类型的数据 int x = a.Pop();

dotNET入门教程_5高级编程

DataCollection– 数据集合泛型集合 – List<T>,Dictionary<Tkey,TValue>C# 泛型集合之非泛型集合类与泛型集合类的对应: ArrayList对应List HashTable对应Dictionary Queue对应Queue Stack对应Stack SortedList对应SortedList

dotNET入门教程_5高级编程

课堂练习

设计一个词典类Dic,每个单词包括英文单词及对应 的中文含义,并有一个英汉翻译成员函数,通过查 词典的方式将一段英语翻译成对应的汉语。思路: 字典项类DicItem包括EngLish(英语单词)、 Chinese(对应中文含义)数据成员,字典类包括一个字典项类 的列表,包含Add()(添加单词)和Trans()(英汉翻译)成员函数。

本文来源:https://www.bwwdw.com/article/fpnm.html

Top