您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 3.C_程序设计基础(数据类型-枚举结构数组)ppt
1C#程序设计基础---数据类型(2)第二章2回顾与作业点评•C#中常量与变量•C#的数据类型、运算符与表达式•数据的输入与输出3预习检查•结构、枚举是值类型还是引用类型?•数组的表示与应用•理解引用类型和值类型的区别4本章任务•如何描述客户信息并封装•如何存储客户的集合信息5•理解结构、枚举•掌握数组的定义与使用•理解拆箱与装箱本章目标6结构•需要存储学生信息,具有ID和年龄,选用哪种数据类型?publicstructStudent{publicintid;//IDpublicintage;//年龄}结构:1、值类型2、使用结构具有较快提取速度7结构定义•结构中有字段,也可以有方法访问修饰符struct结构名{定义结构成员}publicstructStudent{publicintid;//IDpublicintage;//年龄publicvoidShow(){Console.WriteLine(ID:{0}\n年龄:{1},id,age);}}字段不能直接赋初值成员方法演示示例:结构创建和使用结构成员的缺省访问权限是private(在C++中是public)成员可以包含构造函数,常数,字段,方法,属性,索引器,运算符和嵌套类型等8结构的使用•结构变量的定义结构类型变量•结构成员的引用结构变量.成员名9Studentstu;//创建学生结构stu.id=1001;//给学号赋值stu.age=20;//给年龄赋值stu.Show();结构的使用定义结构可以不用new为结构成员赋值调用结构的方法Studentstu;stu.id=1001;stu.age=20;Studentstu2;stu2=stu;值类型,存储为新的副本占用较多存储空间;类:存储地址结构是值类型,提取速度快,但是频繁的赋值操作会占用较大空间,在开发中多数情况下都定义为类!!!10小结-1•编写一个存储长方形(Rec)属性的结构–长(Length)–宽(Width)•实例化一个结构长方形,并计算面积11枚举[访问修辞符]enum[枚举名]:基础类型{枚举成员}枚举值为整型。默认为0,1,2...n•枚举类型的声明枚举类型枚举变量枚举名.枚举成员名•枚举变量的定义•枚举成员的访问基础类型必须能够表示该枚举中定义的所有枚举数值。可以是byte、sbyte、short、ushort、int、uint、long或ulong类型,默认int12枚举类型例如,定义一个名为color的表示颜色的枚举类型:enumcolor{Red,Green,Blue,White,Black}colorc1//定义一个枚举变量c1;c1=color.Green;13枚举类型•默认值可以在初始化阶段中重写枚举类型与基础类型的转换基础类型不能隐式转换为枚举类型,枚举类型也不能隐式转换为基础类型,而和枚举类型相关的显式转换包括:•从所有整数类型(包括字符类型)和实数类型到枚举类型的显式转换;•从枚举类型到所有整数类型(包括字符类型)和实数类型的显式转换;•从枚举类型到枚举类型的显式转换14枚举类型•分析程序classClass1{enumDays{Sat=1,Sun,Mon,Tue,Wed,Thu,Fri};staticvoidMain(string[]args){Daysday=Days.Tue;intx=(int)Days.Tue;Console.WriteLine(day={0},x={1},day,x);}}演示示例:枚举15C#中的一维数组•回顾:为什么要使用数组?数据类型[]数组名;√×string[]arr1;stringarr1[];•如何设置大小?//使用new设置大小//创建长度为5的整型数组int[]array=newint[5];16一维数组初始化//创建的同时初始化int[]arr=newint[5]{0,1,2,3,4};int[]arr=newint[]{0,1,2,3,4};//省略长度int[]arr={0,1,2,3,4};//省略new[5]——方括号中的数字决定数组的长度{0,1,2,3,4}——大括号中的元素个数决定数组的长度•如何初始化?•获得数组的长度(元素的个数):数组名.Length演示示例3:一维数组的初始化17常见错误•数组初始值的数目与数组的长度不一样int[]array=newint[5]{0,1,2};//声明并初始化一维数组初始值的个数必须与数组的长度一样!代码错误18判断正误string[]arr3;arr3=newstring[3]{I,like,C#};intarr1[]=newint[3];int[]arr2=newint[3]{1,2};int[]arr1√newint[3]{1,2,0}•正误判断:××int[]arr4=newstring[3];×类型应一致19例2-1:创建一个一维int类型数组,初始化数组元素并且把每个元素打印出来。usingSystem;classTest{staticvoidMain(){int[]arr=newint[5];for(inti=0;iarr.Length;i++)arr[i]=i*i;for(inti=0;iarr.Length;i++)Console.WriteLine(arr[{0}]={1},i,arr[i]);}}20小结-2类别数据类型描述值类型基本数据类型整型:int长整型:long浮点型:float、double字符型:char布尔型:bool枚举类型枚举:enum结构类型结构:struct引用类型类基类:System.Object字符串:string自定义类:class数组数组:int[],string[]•C#常用值类型和引用类型演示示例:值类型和引用类型区别21装箱和拆箱•值类型和引用类型之间的转换值类型引用类型装箱拆箱staticvoidMain(string[]args){inti=123;objecto=i;//装箱i=456;//改变i的内容Console.WriteLine(值类型的值为{0},i);Console.WriteLine(引用类型的值为{0},o);}staticvoidMain(string[]args){inti=123;objecto=i;//装箱intj=(int)o;//拆箱}与值类型的变量类型要一致演示示例:装箱和拆箱22值方式传递值类型•值方式传递值类型参数–结构:StructSE–不会被修改structStructCe{publicstringcode,name;publicintPopularity;publicvoidsay(){System.Console.WriteLine(name+:+Popularity.ToString());}publicStructCe(stringCode,stringName){Popularity=0;code=Code;name=Name;}}演示示例:使用结构投票增加人气值23值方式传递值类型•值方式传递值类型参数//传递值类型参数StructSEstructZhang=newStructSE();//创建SE结构//…省略其他赋值structZhang.Popularity=10;Vote(structZhang);structZhang.SayHi();publicvoidVote(StructSEse){//人气值增加1se.Popularity++;}人气加1两次的人气值相同,参数在程序中未发生变化值传递演示示例:使用结构投票增加人气值24引用方式传递ref引用方式传递值类型传递引用类型完全相同publicvoidVote(refStructSEse){//人气值增加1se.Popularity++;}•ref引用方式传递参数调用Vote()前后人气值发生变化,保留对参数的修改25数组作为参数•阅读代码,写出运行结果int[]odd={1,3,5};ArrayOpropr=newArrayOpr();opr.PrintArray(odd);opr.ChangeToEven(odd);opr.PrintArray(odd);privatevoidChangeToEven(int[]arr){for(inti=0;iarr.Length;i++){arr[i]=i*2;}}arr[0]=1arr[1]=3arr[2]=5arr[0]=0arr[1]=2arr[2]=4引用类型参数传递数组是引用类型26总结•结构、枚举的声明与定义•数组的定义与应用•值类型和引用类型间的转换称为什么?•值类型和引用类型变量存储方式的区别?
本文标题:3.C_程序设计基础(数据类型-枚举结构数组)ppt
链接地址:https://www.777doc.com/doc-3225918 .html