第2章C数据类型.ppt
《第2章C数据类型.ppt》由会员分享,可在线阅读,更多相关《第2章C数据类型.ppt(120页珍藏版)》请在三一办公上搜索。
1、,第2章 数据类型和表达式,课程目标,C#的两种数值类型引用类型和值类型变量和常量的命名规则以及定义表达式和运算符字符串的处理装箱和拆箱,变量(2-1),语法:访问修饰符 数据类型 变量名,Public,Private,Protected,int,string,float,变量用于存储特定数据类型的值,变量的命名,基本的命名规则如下:变量名的第一个字符必须是字母、下划线或。其后的字符可以是字母、下划线或数字。命名要点变量的名称中不能出现c#中的关键字;最好根据变量的作用来命名,即“见名知义”;我们约定使用PascalCase命名方法。,变量(2-2),static void Main(stri
2、ng args)/声明布尔型、字符串型、整型、短整型和浮点型变量 bool test=true;short num1=19;int num2=14000;string val=John;float num3=14.5f;/显示变量值 Console.WriteLine(布尔值=+test);Console.WriteLine(短整型值=+num1);Console.WriteLine(整型值=+num2);Console.WriteLine(字符串值=+val);Console.WriteLine(浮点值=+num3);,变量中存储的值取决于该变量的类型,定义变量的注意事项,变量由多个单词组成
3、时,让单词首字母大写来分隔单词,而不要使用下划线作为单词的分隔符。尽量少使用单字母作为变量名(循环计数变量除外)。多使用有意义的单词作为变量名称。变量应该先声明后使用。变量应该先初始化后使用。,静态变量和实例变量,用static修饰符声明的变量称为静态变量,没有static修饰符声明的变量称为实例变量。静态变量在任何时候都只有一个副本,而实例变量属于某个实例,每一个类的实例都有一个副本。public static long id=1027;public int number;public decimal price;,静态变量和实例变量,看一个例子:,局部变量,在程序块内声明的变量称为局部变量
4、。for(int i=0;i5;i+)Console.WriteLine(i);,隐式类型的局部变量,声明变量时,可以不指定数据类型,而由编译器根据变量的初始值推断出变量的数据类型,这个变量就称为隐式变量。语法:var 隐式变量名=初始值;var age=30;var name=“张三”;var flag=true;,隐式类型的局部变量,使用隐式类型局部变量时,应注意:1.定义隐式类型的局部变量时,必须初始化;2.不能把隐式类型的局部变量初始化为null;3.不能在同一语句中初始化多个隐式类型的变量,如:var age=20,count=30;4.隐式类型的局部变量不能作为函数的返回值和参数;
5、5.隐式类型的局部变量不能作为类的成员。,常量 2-1,语法:访问修饰符 const 数据类型 常量名=常量值;,Public,Private,Protected,常量用于在整个程序中将数据保持同一个值,int,string,float,常量 2-2,static void Main(string args)/PI常量PIconst float PI=3.14F;/由地球引力引起的加速度常量,单位为 cm/s*s const float Gravity=980;/钟摆的长度 int length=40;/钟摆的周期 double period=0;/钟摆周期的计算公式 period=2*PI*
6、Math.Sqrt(length/Gravity);Console.WriteLine(钟摆的周期为 0 秒,period);,声明常量,在表达式中使用常量,const 关键字用于声明常量,C#的基本数据类型,C#中的数据类型分为两个基本类别 值类型 表示实际数据 只是将值存放在内存中 值类型都存储在堆栈中 int、char、结构引用类型 表示指向数据的指针或引用 包含内存堆中对象的地址 为 null,则表示未引用任何对象 类、接口、数组、字符串,C#两种数值类型,C#的基本数据类型,值类型和引用类型的区别(例子)基于值类型的变量直接包含值。将一个值类型变量赋给另一个值类型变量时,将复制包含的
7、值。引用类型变量不存储实际数据内容,而是存储对实际数据的引用。引用类型变量的赋值只复制对数据的引用,而不复制数据本身。,2.1 值类型简单类型 1.简单类型是C#预置的数据类型,包括整数类型、浮点类型、decimal类型、布尔类型和字符类型。2.在.net框架中,也称为预定义结构类型,保留字就是预定义类型的别名,因此简单类型与预定义结构类型是等价的。int x=10;System.Int32 x=10;3.简单类型也具有成员:int i=int.MaxValue;string s=i.ToString();,2.1.1 简单类型整数类型 c#支持9种整数类型:sbyte,byte,short,
8、ushort,int,uint,long,ulong和char。若没有显示说明,则整数值默认为int类型。若要将数值指定为其他整数类型,则可以在数值后边加上后缀。如:U表无符号数,L表长整型等。,2.1.1 简单类型浮点类型 c#支持2种浮点类型:float和double。若没有显示说明,则浮点数默认为double类型。若要将数值指定为float类型,则可以在数值后边加上后缀F。,2.1.1 简单类型decimal类型 1.这种类型是适合财务和货币计算的128位数据类型。2.必须在数值后边加上后缀M表示decimal类型,如果不加,则默认为double类型。,2.1.1 简单类型布尔类型 在C
9、#中,可以将布尔值赋给布尔型变量,也可以将值为布尔类型的表达式赋给布尔型变量。在C#中,布尔类型与整型截然不同,不能用布尔值代替整数值。,2.1.1 简单类型,字符类型 字符类型包括字母、数字、标点符号以及特殊的控制字符等。定义一个字符变量可以如下:char x=a;注意:表示字符时要用单引号括起来,也可以为字符变量赋转义字符。char y=x0041;,转义序列表,转义字符示例,/转义字符using System;class ESCCharacter static void Main(string args)Console.WriteLine(毛主席他老人家说过:好好学习t天天向上.n我们一
10、定要谨遵他老人家的u005C教诲u005C!);,使用字符类型时应注意:不存在从其他类型到char类型的隐式转换;对字符型变量使用整数进行赋值和运算是不允许的字符型和整型之间可以进行显式转换如:char c=(char)10;int d=(int)j;看一个简单类型的综合例子,2.1 值类型结构类型 结构的定义需使用struct关键字,定义格式如下:struct 结构类型名称 public 类型名称1 结构成员名称1;private 类型名称2 结构成员名称2;.,(1)声明结构变量 定义结构后,一个新的数据类型就产生了,可以像使用基本数据类型那样,用结构来声明变量。(2)访问结构变量 使用结
11、构中的成员必须指出访问的结构变量。方法是在结构变量和成员之间通过运算符“”连接在一起。即:结构变量名.成员名,结构类型是在主函数外声明的。Struct student string id;string name;int age;int score;在main函数中定义变量:Student s;访问结构变量:s.id=“2008010844”;在引用结构体成员时,处理它们的方式与成员类型相同的变量完全一样。注意:结构中的字段不能在定义时赋初值。(看一个例子),枚举类型 定义枚举类型使用关键字enum,定义枚举类型的一般格式为:enum 枚举类型名称 符号常量1,符号常量2,(1)如果未对枚举元素
12、进行初始化,则各个枚举元素的默认值为0、1、2。(2)还可以在定义枚举类型时为成员赋予特定的整数值,例如 enum SolarSystem Sun=700000,/太阳半径 Earth=6380,/地球赤道半径 Moon=1740/月亮半径,(3)枚举使用一个基本类型来存储,在默认情况下,该类型为int,在枚举声明中添加类型,就可以指定其它基本类型:enum orientation:byte north=1,sorth=2,east=3,west=4,(4)声明与访问枚举变量有了枚举类型后,可以使用它来声明枚举变量 WeekDays day=WeekDays.Thursday;/使用WeekD
13、ays.Thursday来访问枚举元素,并用枚举元素初始化枚举变量还可以使用整型值为枚举变量赋值,但必须进行显示转换.当然也可以将枚举元素显式转换为整型数。WeekDays day=(WeekDays)3;Console.WriteLine(int)WeekDays.Thursday);看一个例子,思考,新建一个控制台程序,实现如下功能:1)north2)south3)east4)westPlease select a direction:Please input a distance:当你用键盘输入比如1时,则屏幕会自动输出:north,接着从键盘输入一个距离,随后屏幕也会显示你所输入的距离
14、。注意:最好用枚举和结构类型来实现此题,以进一步熟悉枚举和结构类型的用法。,2.2 引用类型,引用类型继承自Object。引用类型存储的是对实际数据内存地址的引用,当两个引用类型变量引用同一内存中的数据时,对其中一个引用类型变量进行操作会影响另一个引用类型变量。引用类型包括类、接口、委托、数组、字符串等。,1 类C#中经常用到两个类:object和string 对于object类型,它是所有其他类型的基类,一个object类型的变量可以赋予任何类型的值。对于string类型,它表示由0个或多个unicode字符构成的一组字符序列。2 接口 接口好比一种模板,这种模板定义了实现接口的对象必须实现
15、的方法,其目的就是让这些方法可以作为接口实例被引用。3 委托 C#中,委托是引用类型,它是完全面向对象的 4 数组,new 操作符,new操作符用于创建一个新的类型实例。它有三种形式:对象创建表达式,用于创建一个类类型或值类型的实例。数组创建表达式,用于创建一个数组类型实例。代表创建表达式,用于创建一个新的代表类型实例。例:int int_arr=new int10;Program t1=new Program();,as 操作符,as运算符用于在兼容的引用类型之间执行转换。实际上as运算符就是一个强制类型转换,如果转换不成功,则返回null。例:object x=“10”;string y=
16、x as string;Console.WriteLine(“0,1”,y.GetType(),y);,is操作符,is操作符用于动态检查对象的运行时类型是否与给定类型兼容,如果兼容,则返回true,否则返回false。例:object z=“123”;if(z is string)Console.WriteLine(“z is a string.”);,sizeof 操作符,sizeof操作符用于获得值类型的大小。(以字节为单位)使用方法:sizeof(类型)例:Console.Write(sizeof(double);,typeof 操作符,typeof操作符用于获取某一数据类型的预定义结
17、构类型。使用方法:typeof(类型)若要获得一个变量或表达式的类型,必须使用GetType().例:int x=10;Console.WriteLine(typeof(int);Console.Write(x.GetType();,数组1 数组概述数组是一些具有相同类型的数据按一定顺序组成的序列,数组中的每一个数据都可以通过数组名及唯一一个索引号(下标)来存取。所以,数组用于存储和表示既与取值有关,又与位置(顺序)有关的数据。数组元素可以是任何类型。,数组对数组元素的访问是通过数组下标来实现的。(下标从0开始计数)在C#中,数组分为:一维数组,多维数组和交错数组,一维数组1.数组的定义与初始
18、化 数据类型 数组名=new 数据类型元素个数 如:int a=new int5;2.也可以在定义数组的同时进行初始化 数据类型 数组名=new 数据类型元素个数初始化列表 如:inta=new int210,20;intb=new int10,20;intb=10.20;,一维数组在使用数组类型时,应注意:在定义一个数组的时候,方括号必须跟在数据类型的后面,而不能跟在数组名后面;先声明数组,再初始化时必须使用new运算符,不能省略。如:int d;d=1,2,3;,一维数组3.访问数组元素 通过数组下标找到数组元素,可以为数组元素赋值,也可以修改数组元素的值。如:string c=“one”
19、,”two”,”three”;double scores=83,78.5,92;scores1=79;string str=c1;,例题,定义一个数组,求最大数和最小数(见例子),多维数组,1.二维数组的定义与初始化 数据类型维数1,维数2 数组名=new 数据类型一维元素个数,二维元素个数如:int,a=new int2,2;2.有两种方式对二维数组进行初始化 如:int,a=new int,1,2,3.4;int,b=1,2,3.4;,多维数组,如果维数超过两个,则称为多维数组。定义方式类似二维数组。看一个二维数组的例子,交错数组,一般使用交错数组存储稀疏矩阵。交错数组是指数组的元素又是一
20、个数组,它与多维数组不同,它的维数和大小可以不相同。交错数组的定义形式:数据类型 维数1维数2 数组名=new 数据类型一维元素个数;如:int a=new int 3;注意:交错数组必须初始化后才可以使用。,隐式类型数组,定义数组时,可以不指定类型,类型是从数组初始化列表中的元素推断而来的。隐式数组的定义形式:var 数组名=new 初始化列表;var a=new 1,10,100,1000;var b=newnew1,2,3,4,new5,6,7,8;注意:隐式类型数组只支持一维数组,不支持隐式类型多维数组。,array类常用属性和方法(1)Length属性,数组的长度(2)Rank属性,
21、获得数组维数(3)Copy()方法,复制数组(4)Sort()方法,排序数组(5)GetLength()方法:用于获取指定维的长度还可以使用一种更有弹性的方法来获取数组的所有元素,即foreach循环。,foreach循环,foreach循环可以使用一种简便的方法来定位数组中的每个元素:foreach(类型 迭代变量 in 集合表达式)但需要注意的是这种方法只能对数组内容进行只读访问,所以不能改变任何元素的值。演示实例,foreach循环,foreach也可以访问多维数组中的所有元素,其方式与访问一维数组相同。如:Double,hillHeight=1,2,3,4,2,3,4,5,3,4,5,
22、6;foreach(double height in hillheight)Console.WriteLline(“0”,height);,字符串1.字符串声明和引用 它有两种表达方式:1)用string 关键字声明的一组内容放在双引号中 string s=“Hello Word!”;2)用引起来,它可以把字符串中的特殊字符的特殊性去掉,字符串中的所有字符均被认为是普通字符。string DirName=”c:windows”;,处理字符串,2.关键字string拥有大量处理字符串的方法1)string类型变量可以看作是char变量的只读数组。为了获得一个可写的char数组,可以使用ToCha
23、rArray()命令:string mystring=“a string”;char mychars=mystring.ToCharArray();foreach(char character in mychars)Console.WriteLine(“0”,character);演示一个例子:,处理字符串,2).获取字符串的长度(Length属性)如:string str=“my name is lili!”;Console.WriteLine(str.Length);3).连接两个字符串(“+”或Concat方法)如:string a=“this”;string b=“is a test.
24、”,string c=a+b;/string c=string.Concat(a,b);注意:字符串连接符不同于算术运算符,处理字符串,4).取子串(Substring方法)public string Substring(int startIndex)public string Substring(int startIndex,int length)startIndex:子字符串的起始位置,length:子串长度 如:string a=“this is a test.”;string c=a.Substring(5,2);5).查找字符或子串在字符串中的位置(IndexOf方法)int Ind
25、exOf(char value,int startIndex,int count)int IndexOf(string value,int startIndex,int count)与这个方法相对应的,还有一个LastIndexOf()方法,它是从字符串的后面向前搜索。,6).比较字符串的方法(Equals方法/Compare方法/=/!=)string a=“this”;Console.WriteLine(“0”,a.Equals(“this”);Console.WriteLine(“0”,string.Compare(a,“this”);,处理字符串,7).字符串转换全部转换成大写,str
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据类型
链接地址:https://www.31ppt.com/p-5896172.html