资源描述:
《第3章-C#编程基础(下)-newppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章C#编程基础(下)引用类型和值类型目标在本章,你将学到:描述内存分配使用结构使用枚举实施数组使用集合3.1内存分配分配给变量的内存有两种:值类型:所有内置数据类型,诸如int,char和float都是值类型;自定义类型:结构和枚举。引用类型:包括引用内存块的地址。数据类型(如string和class,数组和集合)是引用类型。让我们了解内存分配概念的详情。提问值类型的变量变量名表示一定的存储单元,代表了这些存储单元存储的值,即变量的值inta;执行的时候,内存如何操作?aa表示分配的内存的地址还是存储的
2、值?2001内存分配值类型的赋值操作:intNum1;Num150Num1=50;intNum2;num2Num2=Num1;50Num1=60;60Num1和Num2分别占用不同存储空间赋值操作执行的是拷贝操作即值类型的赋值是拷贝值的操作内存分配引用类型carSu=newcar();等价形式carSu;声明一个car类型的变量Su=newcar();Sunewcar()对象存储空间20012001CarMe;Me=Su;Me2001思考:Su.mode=10则Me.mode的值为多少?3.2自定义值类型-
3、结构类型结构类型是多种类型的统一体structStudentScoreList{publicstringid;publicstringname;publicintscore;}StudentScoreLists1;其中,s1是一个StudentScoreList结构类型的变量。对结构成员的访问通过结构变量名加上访问符“.”号,再跟成员的名称:s1.name="Tom";结构体是值类型结构不能继承结构没有缺省构造器代码struct1.cs枚举类型在实际生活中要表示一个星期的某一天,我们可以用0,1,…6来表示
4、,但这样不直观,如果用sat,sun,mon,tue,wed,thu,fri来分别表示0,1,…6就好了要实现上述问题,可以用枚举类型枚举类型的定义要进行枚举,可以使用enum关键字。以下是声明枚举类型Days的示例:enumDays{Sat,Sun,Mon,Tue,Wed,Thu,Fri};0123456枚举类型中的每个成员对应一个整数值枚举类型的使用声明枚举类型后,您可以用与任何其他数据类型相同的方式来使用枚举类型,如以下代码所示:intFirst_Day=(int)Days.Sat;intLast_D
5、ay=(int)Days.Fri;类型名.成员usingSystem;enumColor{Red,Green=10,Blue}classTest{staticvoidMain(){Console.WriteLine(StringFromColor(Color.Red));Console.WriteLine(StringFromColor(Color.Green));Console.WriteLine(StringFromColor(Color.Blue));}staticstringStringFromCo
6、lor(Colorc){switch(c){caseColor.Red:returnString.Format("Red={0}",(int)c);caseColor.Green:returnString.Format("Green={0}",(int)c);caseColor.Blue:returnString.Format("Blue={0}",(int)c);default:return"Invalidcolor";}}}字符串stringString对象为不可变对象stringst;st=“dfdd
7、f”;st=st+”dfdf”;课堂练习输入一行字符串,统计并输出字符串中大写辅音字母的个数(大写辅音字母:除“A”,“E”,“I”,“O”,“U”以外的大写字母)。3.3数组3.3.1数组的定义数组是指一组数据的集合,数组中的每个数据被称作元素。在数组中可以存放任意类型的元素,但同一个数组里存放的元素类型必须一致。在C#中,可以使用下面的语句来定义一个数组。上述语句就相当于在内存中定义了100个int类型的变量,第一个变量的名称为x[0],第二个变量的名称为x[1],以此类推,第100个变量的名称为x[9
8、9],这些变量的初始值都是0。3.3引用类型-数组数组是相同数据类型值的集合。下图显示系统内存中的数组结构。num012引用类型-数组数组的声明在程序中使用数组之前需要先声明数组。可以使用以下语句声明一维数组:数据类型[]数组名;让我们通过一个示例来了解数组声明的各种元素的解释。int[]Score;数据类型数组名目前还没有分配数组存储空间举例:int[]anArray;//声明一个整型的一维数组float[]a