




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,C#程序设计基础-数据类型(2),第二章,2,回顾与作业点评,C#中常量与变量 C#的数据类型、运算符与表达式 数据的输入与输出,3,预习检查,结构、枚举是值类型还是引用类型? 数组的表示与应用 理解引用类型和值类型的区别,4,本章任务,如何描述客户信息并封装 如何存储客户的集合信息,5,理解结构、枚举 掌握数组的定义与使用 理解拆箱与装箱,本章目标,6,结构,需要存储学生信息,具有ID和年龄,选用哪种数据类型?,public struct Student public int id; /ID public int age; /年龄 ,结构: 1、值类型 2、使用结构具有较快提取速度,7,结构定义,结构中有字段,也可以有方法,访问修饰符 struct 结构名 定义结构成员 ,public struct Student public int id; /ID public int age; /年龄 public void Show() Console.WriteLine(“ID:0n年龄:1“,id,age); ,字段不能直接赋初值,成员方法,结构成员的缺省访问权限是private(在C+中是public),成员可以包含构造函数,常数,字段,方法,属性,索引器,运算符和嵌套类型等,8,结构的使用,结构变量的定义,结构类型 变量,结构成员的引用,结构变量.成员名,9,Student stu; /创建学生结构 stu.id = 1001; /给学号赋值 stu.age = 20; /给年龄赋值 stu.Show();,结构的使用,定义结构可以不用new,为结构成员赋值,调用结构的方法,Student stu; stu.id = 1001; stu.age = 20; Student stu2; stu2 = stu;,值类型,存储为新的副本 占用较多存储空间; 类:存储地址,结构是值类型,提取速度快,但是频繁的赋值操作会占用较大空间, 在开发中多数情况下都定义为类!,10,小结-1,编写一个存储长方形(Rec)属性的结构 长(Length) 宽(Width) 实例化一个结构长方形,并计算面积,11,枚举,访问修辞符 enum 枚举名:基础类型 枚举成员 ,枚举值为整型。默认为0,1,2. n,枚举类型的声明,枚举类型 枚举变量,枚举名.枚举成员名,枚举变量的定义,枚举成员的访问,基础类型必须能够表示该枚举中定义的所有枚举数值。可以是 byte、sbyte、short、ushort、int、uint、long 或 ulong 类型,默认int,12,枚举类型,例如,定义一个名为color的表示颜色的枚举类型: enum color Red,Green,Blue,White,Black color c1 /定义一个枚举变量c1; c1= color .Green;,13,枚举类型,默认值可以在初始化阶段中重写,枚举类型与基础类型的转换 基础类型不能隐式转换为枚举类型,枚举类型也不能隐式转换为基础类型,而和枚举类型相关的显式转换包括: 从所有整数类型(包括字符类型)和实数类型到枚举类型的显式转换; 从枚举类型到所有整数类型(包括字符类型)和实数类型的显式转换; 从枚举类型到枚举类型的显式转换,14,枚举类型,分析程序,class Class1 enum Days Sat=1, Sun, Mon, Tue, Wed, Thu, Fri; static void Main(string args) Days day=Days.Tue; int x=(int)Days.Tue; Console.WriteLine(“day=0,x=1“,day,x); ,15,C# 中的一维数组,回顾:为什么要使用数组?,数据类型 数组名;,string arr1; string arr1 ;,如何设置大小?,/ 使用 new 设置大小 / 创建长度为5的整型数组 int array = new int5;,16,一维数组初始化,/ 创建的同时初始化 int arr = new int50,1,2,3,4; int arr = new int 0,1,2,3,4; / 省略长度 int arr = 0,1,2,3,4; / 省略new,5方括号中的数字决定数组的长度,0,1,2,3,4大括号中的元素个数决定数组的长度,如何初始化?,获得数组的长度(元素的个数):,数组名.Length,17,常见错误,数组初始值的数目与数组的长度不一样,int array = new int5 0, 1 ,2; / 声明并初始化一维数组,初始值的个数必须与数组的长度一样!,代码错误,18,判断正误,string arr3; arr3 = new string3 “I“, “like“, “C# “ ;,int arr1 = new int3;,int arr2 = new int31,2;,int arr1,new int31,2,0,正误判断:,int arr4 = new string3;,类型应一致,19,例2-1:创建一个一维int类型数组,初始化数组元素并且把每个元素打印出来。 using System; class Test static void Main() int arr = new int5; for (int i = 0; i arr.Length; i+) arri = i * i; for (int i = 0; i arr.Length; i+) Console.WriteLine(“arr0 = 1“, i, arri); ,20,小结-2,C#常用值类型和引用类型,21,装箱和拆箱,值类型和引用类型之间的转换,值类型,引用类型,装箱,拆箱,static void Main(string args) int i = 123; object o = i; / 装箱 i = 456; /改变i的内容 Console.WriteLine(“值类型的值为 0“, i); Console.WriteLine(“引用类型的值为 0“, o); ,static void Main(string args) int i = 123; object o = i; / 装箱 int j = (int)o; /拆箱 ,与值类型的变量类型要一致,22,值方式传递值类型,值方式传递值类型参数 结构:StructSE 不会被修改,struct StructCe public string code,name; public int Popularity; public void say() System.Console.WriteLine(name + “:“ + Popularity.ToString(); public StructCe(string Code,string Name) Popularity = 0; code = Code; name = Name; ,23,值方式传递值类型,值方式传递值类型参数,/传递值类型参数 StructSE structZhang = new StructSE(); /创建SE结构 /省略其他赋值 structZhang.Popularity = 10; Vote(structZhang); structZhang.SayHi();,public void Vote(StructSE se) /人气值增加1 se.Popularity+; ,人气加1,两次的人气值相同,参数在程序中未发生变化,值传递,24,引用方式传递,ref 引用方式传递值类型,传递引用类型,完全相同,public void Vote(ref StructSE se) /人气值增加1 se.Popularity+; ,ref 引用方式传递参数,调用Vote()前后人气值发生变化,保留对参数的修改,25,数组作为参数,阅读代码,写出运行结果,int odd = 1, 3, 5 ; ArrayOpr opr = new ArrayOpr(); opr.PrintArray(odd); opr.ChangeToEven(odd); opr.PrintArray(odd);,private void ChangeToEven
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农发行济宁市金乡县2025秋招信息科技岗笔试题及答案
- 农发行昆明市官渡区2025秋招笔试综合模拟题库及答案
- 农发行平凉市崆峒区2025秋招无领导小组面试案例库
- 农发行蚌埠市龙子湖区2025秋招笔试专业知识题专练及答案
- 农发行曲靖市富源县2025秋招小语种岗笔试题及答案
- 国家能源郴州市苏仙区2025秋招心理测评常考题型与答题技巧
- 国家能源菏泽市巨野县2025秋招写作案例分析万能模板可套用
- 国家能源北海市海城区2025秋招笔试资料分析题专练及答案
- 2025年河北雄安新区新建片区学校公开选聘教职人员102名考前自测高频考点模拟试题及完整答案详解
- 办公室文员工作总结集合15篇
- 鄂托克高新技术产业开发区固废处理场建设项目环评报告书
- 老年焦虑障碍课件
- 产科护理个案分享案例
- 结肠癌根治术后护理
- 《婚姻家庭辅导》课件
- 2024年共青团入团考试题【附答案】
- 新统计法培训
- 养老院有限空间环境安全管理制度
- 保证食品安全的规章制度清单
- GB/T 30661.10-2024轮椅车座椅第10部分:体位支撑装置的阻燃性要求和试验方法
- 《环境保护法讲座》课件
评论
0/150
提交评论