VisualC#语法基础.ppt
《VisualC#语法基础.ppt》由会员分享,可在线阅读,更多相关《VisualC#语法基础.ppt(120页珍藏版)》请在三一办公上搜索。
1、第2章 Visual C#.NET 语法基础,内容简介,设计C#程序的主要目的是完成数据的运算与管理,C#支持丰富的数据类型、运算符以及控制流程的语句,是实现这一目的的基础保证。在编写C#程序时,不同类型的数据都必须遵循“先定义,后使用”的原则。本章主要介绍C#程序的基本结构以及基本数据类型、常量、变量、运算符和表达式等基础知识。,目录,2.1 C#程序结构,2.2 基本数据类型,2.6 值类型,2.7 本章小结,2.3 变量与常量,2.5 引用类型,2.4 运算符与表达式,2.1 C#程序结构,2.1.1 程序的组成要素 C#程序支持控制台应用程序、Windows应用程序和Web应用程序,其
2、中控制台应用程序是字符界面的,其余两类应用程序是图形界面。这三种应用程序的操作模式基本相同,也具有相同或相近的组成要素。,2.1.1 程序的组成要素,1标识符 2关键字3语句 4注释5命名空间 6类的定义和类的成员7C#程序中的方法,2.1.1 程序的组成要素,1标识符 与Java中定义及命名规则相同,区分大小写。关键字不可以用作普通标识符,但可以用前缀来避免这种冲突。(这是Java中不具有的特性)例如:int bool=3;Console.WriteLine(bool);System.Threading.Thread.Sleep(1000);C#中标识符的命名约定类名约定首字母大写变量名、方
3、法名等则约定使用Camel命名法。,2.1.1 程序的组成要素,2关键字关键字(keyword)是C#程序语言保留作为专用的有特定意义的字符串,不能作为通常的标识符来使用。在C#语言中主要有如下关键字:abstract、as、base、bool、break、byte、case、catch、char、checked、class、const、continue、decimal、default delegate、do、double、else、enum、event、explicit、extern、false、finally、fixed、float、for、foreach、get、goto、if、impl
4、icit、in、int、interface、internal、is、lock、long、namespace、new、null、object、operator、out、override、params、private、protected、public、readonly、ref、return、sbyte、sealed、set、short、sizeof、stackalloc、static、string、struct、switch、this、throw、true、try、typeof、uint、ulong、unchecked、unsafe、using、value、virtual、volatile、whi
5、le。,2.1.1 程序的组成要素,3语句 语句是应用程序中执行操作的一条命令。C#代码由一系列语句组成,每条语句都必须以分号结束。可以在一行中书写多条语句,也可以将一条语句书写在多行上。使用“”来表示应用程序中的不同层次和代码块。提示:为了表示代码的结构层次,要注意语句的缩进。虽然缩进在程序格式中不是必须的,但缩进可以清晰地显示出程序的结构层次,这是一种良好的编程习惯。,2.1.1 程序的组成要素,4注释(1)行注释:使用行注释标识符“/”,表示该标识符后的“一行”为注释部分。(2)块注释:块注释分别以“/*”和“*/”为开始和结束标识符,在此中间的内容,均为注释的部分。(3)文档注释:在C
6、#中,还可以用“/”符号来开头。在一般情况下,编译器也会忽略它们,但可以通过配置相关工具,在编译项目时,提取注释后面的文本,创建一个特殊格式的文本文件,该文件可用于创建文档说明书。例如:,2.1.1 程序的组成要素,namespace ConsoleApplication1 class Program/这是一个控制台程序/没有返回值 static void Main(string args)System.Console.WriteLine(参数1:+args0);System.Console.ReadLine();,2.1.1 程序的组成要素,5命名空间 命名空间有两种:系统命名空间和用户自定
7、义命名空间。系统命名空间是一个逻辑的命名系统,用来组织庞大的系统类资源,让开发者使用起来结构清晰、层次分明、使用简单。同时,用户也可以使用自定义的命名空间以解决应用程序中可能出现的名称冲突。,2.1.1 程序的组成要素,5命名空间(1)定义命名空间。在C#中定义命名空间的语法格式如下:namespace SpaceName 上述格式中,namespace为声明命名空间的关键字,SpaceName为命名空间的名称。在花括号中间的内容都属于名称为SpaceName的命名空间的范围,其中可以包含类、结构、枚举、委托和接口等可在程序中使用的类型。,2.1.1 程序的组成要素,(2)嵌套命名空间。命名空
8、间内包含的可以是类、结构、枚举、委托和接口,同时也可以在命名空间中包含其他命名空间,从而构成树状层次结构。例如:namespace Wrox namespace ProCSharp namespace Basics class ClassExample/Code for the class here.每个类名的全称都由它所在命名空间的名称与类名组成,这些名称用“”隔开,首先是最外层的命名空间,最后是它自己的短名。,2.1.1 程序的组成要素,(3)using语句。当出现多层命名空间嵌套时,键入起来很繁琐,为此,要在文件的顶部列出类所在的命名空间,前面加上using关键字。在文件的其他地方,就可
9、以使用其类型名称来引用命名空间中的类型了。例如:using System;using Wrox.ProCSharp;所有的C#源代码都以语句“using System;”开头,因为Microsoft提供的许多有用的类都包含在System命名空间中。,2.1.1 程序的组成要素,6类的定义和类的成员每一个C#应用程序都必须借助于.NET Framework类库实现,因此必须使用using关键字把.NET Framework类库相应的命名空间引入到应用程序的项目中来。C#的源代码必须存放到类中,一个C#应用程序至少要包括一个自定义类。自定义类使用关键字class声明,其名字是一个标识符。类的成员包
10、括属性、方法和事件,主要由方法构成。例如控制台应用程序或Windows应用程序必须包含Main方法,Main方法是应用程序的入口。程序的运行时,从Main方法的第一条语句开始执行,直到执行完最后一条语句为止。,2.1.1 程序的组成要素,7C#程序中的方法C#应用程序中的方法一般包括方法头部和方法体。方法头部主要包括返回值类型、方法名、形式参数(简称“形参”)类型及名称,若方法中包含多个形参,形参之间用逗号分隔。方法体使用一对“”括起来,通常包括声明部分和执行部分。声明部分用于定义变量,执行部分可以包含赋值运算、算法运算、方法调用等语句或语句块。,2.1.2 语法格式中的符号约定,表2-1列出
11、了Visual C#.NET参考的语法格式中常用的符号约定。,2.2 基本数据类型,C#中的数据类型,值类型,引用类型,指针类型(仅用于安全代码中),整数类型,浮点类型,字符类型,Decimal类型,布尔类型,类,接口,委托,数组,简单类型,枚举类型,结构类型,2.2 基本数据类型,值类型 值类型的数据存储在内存的堆栈中,可以提供快速访问。如果变量是值类型的,这个变量包含实际数据,在一个独立的内存区域保存自己的值;如果在代码中修改其值,在内存中会保存修改后的值。当值类型在方法体内被声明时,它们都是被放置到栈上的。值类型有时也会被放置到堆上,记住这条规则值类型总是放在它们被声明的地方。如果一个值
12、类型数据在方法体外被声明,且存在于一个引用类型中,那么它将被 堆总的引用类型所取代。引用类型 引用类型指向存储在内存堆中的数据的指针或引用。与纯粹的地址不同,引用总是指向一个对象,而且这个对象具有指定的类型,并且在堆上分配了存储空间。,2.2 基本数据类型,2.2.1 数值类型2.2.2 字符类型2.2.3 布尔类型和对象类型,2.2 基本数据类型,2.2.1 数值类型 数值类型可以分为整数类型和实数类型。1整数类型C#中支持8种整数类型:sbyte、byte、short、ushort、int、uint、long、ulong。这8种类型通过其占用存储空间的大小以及是否有符号来存储不同极值范围的
13、数据,根据实际应用的需要,选择不同的整数类型。整数类型的相关说明如表2-2所示。,2.2.1 数值类型,2实数类型实数类型包括浮点型和小数型(decimal),浮点型又包括单精度浮点型(float)和双精度浮点型(double)。浮点型数据一般用于表示一个有确定值的小数。计算机对浮点数的运算速度大大低于对整数的运算速度,数据的精度越高,对计算机的资源要求越高。因此,在精度要求不是很高的情况下,尽量使用单精度类型(占用4个字节)。如果精度要求较高的情况,则可以使用双精度类型(占用8个字节)。因为使用浮点型表示小数的最高精度只能够达到16位,为了满足高精度的财务和金融计算领域的需要,C#提供了小数
14、型(占用12个字节)。实数类型数据的相关说明如表2-3所示。,2.2.2 字符类型,字符类型包括字符型(char)和字符串型(string)。字符包括数字字符、英文字母、表达式符号等,C#提供的字符类型按照国际上公认的标准,采用Unicode字符集。字符型是指单个字符,一个Unicode的标准字符长度为16位,占用2个字节。char是类System.Char的别名。字符串型是指多个字符,其占用字节根据字符数量而定(允许不包含字符的空字符串)。string是类System.String的别名。,2.3 变量与常量,在程序处理数据的过程中,常量和变量用来标识数据。2.3.1 变量 2.3.2 常量
15、 2.3.3 类型转换,2.3.1 变量,在程序运行过程中,其值可以改变的量称为变量。变量可以用来保存从外部或内部接收的数据,也可以保存在处理过程中产生的中间结果或最终结果。在C#中,每一个变量都必须具有变量名、存储空间和取值等属性。1变量的声明 要使用变量,就必须声明它们,即给变量指定一个名称和一种类型。变量命名应遵循标识符的命名规则,如:必须以字母、下划线等Unicode字符开头,不能以数字开头,不能包含空格。声明了变量后,编译器才会申请一定大小的存储空间,用来存放变量的值。,2.3.1 变量,1变量的声明 一个语句可以定义多个相同类型的变量,变量间用逗号分隔,标识符和变量类型之间至少要有
16、一个空格。定义变量的语句以分号结束,例如:int a,b,c;float m,n;char ch1,ch2;下面给出一些非法的变量名的例子:int 3a;/不合法,以数字开头float namespace;/不合法,与关键字名称相同,2.3.1 变量,2变量的赋值 在C#中,变量必须赋值后才能引用。为变量赋值,一般使用等号“=”。例如:char ch1,ch2;ch1=O;ch2=K;int a,b,c;a=b=c=0;,2.3.1 变量,3变量的初始化 变量的初始化就是在定义变量的同时给变量赋初值,其一般形式为:数据类型 变量名1=初值1,变量名2=初值2,.;例如:float f11.25
17、,f23.6,f3;【例2-1】变量的定义和使用。,2.3.2 常量,在程序运行过程中,其值保持不变的量称为常量。常量类似于数学中的常数。常量可分为直接常量和符号常量两种形式。1直接常量所谓直接常量,就是在程序中直接给出的数据值。在C#中,直接常量包括整型常量、浮点型常量、小数型常量、字符型常量、字符串常量和布尔型常量。,2.3.2 常量,1直接常量(1)整型常量。整型常量分为有符号整型常量、无符号整型常量和长整型常量,有符号整型常量写法与数学中的常数相同,直接书写,无符号整型常量在书写时添加u或U标志,长整型常量在书写时添加l或L标记。例如,3、3U、3L。(2)浮点型常量。浮点型常量分为单
18、精度浮点型常量和双精度浮点型常量。单精度浮点型常量在书写时添加f或F标记,双精度浮点型常量添加d或D标记。例如,7f、7d。需要注意的是,以小数形式直接书写而未加标记时,系统将自动解释成双精度浮点型常量。例如,9.0即为双精度浮点型常量。,2.3.2 常量,(3)小数型常量。在C#中,小数型常量的后面必须添加m或M标记,否则就会被解释成标准的浮点型数据。C#中的小数和数学中的小数是有区别的。例如,5.0M。(4)字符型常量。字符型常量是一个标准的Unicode字符,使用两个单引号来标记。例如,5、d、昱、#都是标准的字符型常量。C#还允许使用一种特殊形式的字符型常量,即以反斜杠“”开头,后面跟
19、字符的字符序列,这种字符型常量被称为转义字符常量。该形式的常量可以表示控制字符或不可见字符,当然也可以表示可见字符。例如,n表示换行符,而x41则表示字符A。C#中常用的转义字符如表2-4所示。,2.3.2 常量,(5)字符串常量。字符串常量表示若干个Unicode字符组成的字符序列,使用两个双引号来标记。例如,“5”、“abc”、“清华大学”都是字符串。(6)布尔型常量。布尔型常量只有两个:一个是true,表示逻辑真;另一个是false,表示逻辑假。,2.3.2 常量,2符号常量符号常量使用const关键字定义,格式为:const 类型名称 常量名=常量表达式;“常量表达式”不能包含变量、函
20、数等值会发生变化的内容,可以包含其他已定义常量。如果在程序中非常频繁地使用某一常量,可以将其定义为符号常量,例如:const double PI=3.14159;【例2-2】不同类型的常量格式测试。,2.3.3 类型转换,在程序处理数据的过程中,经常需要将一种数据类型转化为另一种数据类型。数据类型的转换方式有两种:隐式转换和显式转换。1隐式转换隐式转换一般发生在数据进行混合运算的情况下,是由编译系统自动进行的,不需要加以声明。在该过程中,编译器无需对转换进行详细检查就能够安全地执行转换。隐式转换一般不会失败、不会出现致命隐患或造成信息丢失。例如:short s=1;int i=s;需要注意的是
21、,隐式转换无法完成由精度高的数据类型向精度低的类型转换。例如:int i=1;short s=i;/错误,如果必须进行转换,就应该使用显式类型转换,2.3.3 类型转换,1隐式转换隐式转换需要遵循如下规则:(1)参加运算的数据类型不一致,先转换成同一类型,再进行计算。不同类型数据进行转换时,按照数据长度增加的方向进行,以保证数据精度不降低。例如,int 型数据与long型进行运算,则先把int 型数据转换成long型再计算。(2)所有浮点型数据都是以双精度型进行的,例如,表达式5*3.5f*2.8d的3项先全部转换成双精度再进行运算。(3)byte和short型数据参与运算时,必须先转换成in
22、t 型数据。(4)char类型可以隐式转换成ushort、int、uint、long、float、double或decimal类型,但其他类型不能隐式转换成char类型。,2.3.3 类型转换,2显式转换 显式类型转换,又称为强制类型转换,该方式需要用户明确的指定转换的目标类型,该类型转换的一般形式为:(类型说明符)(需要转换的表达式)例如:short s=7;int i=(int)s;/将s的值显式转化为int类型,并赋值于int类型变量i 显式转换包含所有的隐式类型转换,即把任何编译器允许的隐式类型转换写成显式转换都是合法的。显式类型转换并不一定总是成功,且转换过程中会出现数据丢失。,2.
23、3.3 类型转换,2显式转换需要注意的是,使用显式转换时,如果要转换的数据不是单个变量,需要加圆括号。在转换过程中,仅仅是为本次运算的需要对变量的长度进行临时性转换,而不是改变变量定义的类型。例如:float a=3.5f;int i=(int)(a+5.1);/把表达式a+5.1的结果转换为int型,但 a的类型为float,值仍然是3.5f,2.3.3 类型转换,3.使用方法进行数据类型的转换(1)Parse方法 Parse方法可以将特定格式的字符串转换为数值,其使用格式为:数值类型名称.Parse(字符串型表达式)例如:int i=int.Parse(100);/字符串符合整型格式,转换
24、成功int j=int.Parse(“100.0”);/字符串不符合符合整型格式,出错(2)Convert类的方法(3)ToString方法,2.3.3 类型转换,3.使用方法进行数据类型的转换(1)Parse方法(2)Convert类的方法 Convert类提供了常用的方法将数字字符串转化为相应的数值,如ToBoolean、ToByte、ToChar、ToInt32、ToSingle等方法;Convert类还提供了ToString方法将其他数据类型转换为字符串,提供了ToChar方法将整型的ASCII码值转换为对应字符。例如:string s=97;int n=Convert.ToInt32
25、(s);/n=97 char c=Convert.ToChar(n);/ASCII码为97的字符是a,c=a,2.3.3 类型转换,3.使用方法进行数据类型的转换(1)Parse方法(2)Convert类的方法(3)ToString方法 ToString方法可将其他数据类型的变量值转换为字符串类型,其使用格式为:变量名称.ToString()其中,“变量名称”也可以是某个方法的调用。例如:int n=97;string s=n.ToString();/s=“97”string t=Convert.ToChar(n).ToString();/t=“a”【例2-3】数值字符串与数值之间的转换。,2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VisualC 语法 基础
链接地址:https://www.31ppt.com/p-6523074.html