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()(英汉翻译)成员函数。
正在阅读:
dotNET入门教程_5高级编程07-24
廖俊松公共政策教案04-07
难忘的六一儿童节作文800字06-29
市体育事业发展中心最新半年工作总结及2022年工作规划04-04
小学四年级一班家长会教师发言稿04-19
2012年高考地理考前冲刺串讲 自然灾害与防治 - 图文03-19
第八章十九世纪自然主义和二十世纪初期文学06-14
毕业建筑电气施工实习报告06-24
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 入门教程
- 高级
- 编程
- dotNET
- 最小二乘参数辨识方法
- 《水浒》:反抗封建暴政的英雄传奇
- 运用生产力和生产关系的辩证关系原理,说明建立社会主义市场经济体制的重要性
- 提高影像方向班人体断面解剖学实验教学效果的探索
- 北京领航 2011年考研政治强化班讲义(马克思主义哲学) 张俊芳
- 2015浙江教师招聘考试练习题二十
- 泡沫包装的项目可行性研究报告评审方案设计(2013年发改委立项详细标准+甲级案例范文)
- 欧版磨粉机制备石灰石粉的技术优势
- 按近似概率理论的极限状态设计法
- 彩屏背光成品检验标准
- 固定收益证券9_投资组合管理技术
- 党章党规知识测试题答案
- 最新工商银行业务委托书打印模版
- 企业管理幻灯片终极版OK
- 江苏省泗阳县桃州中学、新阳中学2014-2015学年七年级下学期期末联考历史试题及答案
- 110(66)kV~500kV油浸式变压器(电抗器)运行规范(附说明)
- 口腔医生全科必知
- 马钢4000 m 3级高炉的主要技术特点及装备水平
- 修改版洗衣机说明书-李明
- 《嵌入式Linux设计与开发》课程设计