您好,欢迎访问三七文档
1第2章C#语法基础要进行C#程序设计必须了解C#程序结构、语法规则、数据类型和表达式。本章介绍这些方面的内容。2.1C#程序结构C#的程序结构是指构成应用程序的很必要元素。包括程序的组成要素、语法规则及书写格式等。2.1.1C#程序的组成要素在第1章,曾经介绍了C#控制台应用程序的创建过程,这个程序虽然非常简单,但是麻雀虽小,五脏俱全,通过这个程序可以了解C#程序构成要素。下面是这个程序的完整代码:usingSystem;namespace控制台程序01{classClass1{staticvoidMain(string[]args){////TODO:在此处添加代码以启动应用程序//Console.WriteLine(世界,你好!);Console.ReadLine();}}}分析这个程序,可以看出C#程序命名空间、类和方法、语句和大括号等组成要素。1.关键字在C#代码中常常使用关键字,关键字也叫保留字,是对C#有特定意义的字符串。关键字在VisualStudio.NET环境的代码视图中默认以蓝色显示。2.命名空间命名空间既是VisualStudio.NET提供系统资源的分层组织方式,也是分层组织程序的方式。因此,命名空间有两种,一种是系统命名空间,一种是用户自定义命名空间。系统命名空间是VisualStudio.NET平台提供的系统预定义的基础数据类型和类(包括方法成员)类型资源,以供用户程序设计时使用。2系统命名空间使用using关键字导入,上述程序代码中的System就是VisualStudio.NET中的最基本的命名空间,该命名空间提供了对构建应用程序时所需要的所有系统功能的使用,代码中的“Console.WriteLine”与“Console.ReadLine”就是该命名空间提供的控制台类的行输出输入方法。所以在创建项目时,VisualStudio.NET平台都会自动生成导入该命名空间的代码,并且放在程序的第一行。用户自定义命名空间使用namespace关键字声明,上述程序中的“控制台应用程序01”就是用户自定义命名空间。在C#中,命名空间的声明允许嵌套,即在命名空间中允许声明其他的命名空间。命名空间的导入在程序中并不是必须的,例如,在上述程序中可以不使用“usingSystem;”语句导入“System”命名空间,但是,如果这样做的话,在使用“System”提供的类的方法时,就必须指明其所属的命名空间。所以如果不导入“System”命名空间,那么使用控制台类的行输出输入方法的代码就应该是“System.Console.WriteLine”与“System.Console.ReadLine”。命名空间的声明也不是必须的,例如在上述程序,可以不声明“控制台应用程序01”这一用户自定义命名空间。如果这样,程序代码如下:usingSystem;classClass1{staticvoidMain(string[]args){////TODO:在此处添加代码以启动应用程序//Console.WriteLine(世界,你好!);Console.ReadLine();}}这时,程序照样可以正常运行,但是在实际的程序开发过程中,一个程序往往是由许多模块组成,使用命名空间有利于程序组织与管理。所以使用命名空间是一种良好的编程习惯。3.类和方法在C#中,必须用类来组织程序的变量与方法,上述程序就定义了一个名为“Class1”的类。在类“Class1”中声明了一个名为“Main”的方法。“Main”方法用来指示应用程序从该处开始,并实现类“Class1”的特定功能。C#要求每个程序必须且只能有一个“Main”方法,缺少“Main”方法或“Main”方法多于一个,都将产生错误。“Main”方法必须放在某一个类中。“Main”方法是应用程序的入口。有关类与方法的详细内容,将在第4章和第5章中介绍。4.语句3语句就是C#应用程序中执行操作的指令。C#中的语句必须用分号“;”结束。可以在一行中书写多条语句,也可以将一条语句书写在多行上。当语句中包含不同层次的内容时,C#用点“.”操作符表示所属关系。例如,上述内容中的语句“System.Console.WriteLine”包含三个层次。“System”表示一个命名空间,“Console”表示该命名空间中的一个类,“WriteLine”表示该类中的一个方法。实际上这种表示方法与现实生活中对事物所属关系的表示是一样的,例如,“张三的房间中的桌子”就包含了三个层次的所属关系。因此,可以把“.”操作符理解为现代汉语中表示所属关系的“的”。5.大括号在C#中,在括号“{”和“}”是一种范围标志,是组织代码的一种方式,用于标识应用程序中逻辑上有紧密联系的一段代码开始与结束。大括号可以嵌套,以表示应用程序中的不同层次,例如,在上述程序中命名空间“控制台应用程序01”下的大括号标识该命名空间的代码范围,类“class1”下的大括号标识该的代码范围,方法“Main”下的大括号,标识该方法的范围,并且,类“class1”包含在“控制台应用程序01”中,“Main”方法又包含在类“class1”中。2.2.2C#程序的格式C#应用程序中的代码应按照一定的格式书写,代码格式有两类,一类属于C#的语法规则,这一类格式必须遵守;还有一类属于结构格式,这在程序设计中不是必须的,但统一结构格式的书写方法有助于使代码层次清晰,从而提高程序的可读性,是一种良好的编程习惯。1.缩进与空格缩进用于表示代码的结构层次,这在程序中不是必须的,但是缩进可以清晰地表示程序的结构层次,在程序设计中应该使用统一的缩进格式书写代码。例如,在上述程序中,命名空间及标识其范围的一对大括号顶格书写,命名空间中的类及标识其范围的一对大括号向内缩进一个制表位,类中的方法及标识其范围的一对大括号向内缩进两个制表位,方法中的语句向内缩进三个制表位。这样就清晰地表示出该程序的结构。空格有两种作用,一种是语法要求,必须遵守,一种是为使语句不至于太拥挤。例如声明并初始化一个变量的语句:intia=3;其中类型“int”与变量名“ia”之间的空格是语法要求,此处若无空格将产生错误;而变量名“ia”与赋值运算符“=”、赋值运算符“=”与“3”之间的空格则是为了使语句看起来舒展,不是必须的。2.字母大小写C#中的字母可以大小写混合,但是必须注意的是,C#把同一字母的大小写当作两个不同的字符对待,如,大写“A”与小写“a”对C#来说,是两个不同的字符。在上述程序中“Main”是大小写混合的,如果把“Main”写成了“main”,C#会认为是另一个名称。3.注释代码中的注释起对代码的解释说明作用,在将程序进行编译时,将跳过程序的注释部分,所以注释不是必须的。但是,在现代程序设计中,程序的可读性的地位越来越重要,在程序中添加注释,不仅有利于编程者对程序阅读与维护,也能是别人更好地阅读程序。所以,使4用注释在程序设计中是必不可少的。C#中的注释基本有两种,一是单行注释,一是多行注释。单行注释以双斜线“//”开始,不能换行。例如上述程序中的“//TODO:在此处添加代码以启动应用程序”就是一个单击注释。多行注释以“/*”开始,以“*/”结束,可以换行。例如/*这是一个控制台程序*/多行注释不允许嵌套,否则将出错。单行注释与多行注释均可以从行首或行尾开始。2.2基本数据类型在程序设计中,难免要对数据进行处理,而数据又有不同的种类,如整数、小数、单个字符、多个字符、真假等等,这些种类不同的数据就叫数据类型。程序在处理数据时,需要对数据进行临时保存,而保存不同类型的数据所用的存储空间是不同的,所以了解各种数据类型及其使用是学习编程必须的。基本数据类型是系统预定义的数据类型,也叫内置数据类型。从数据的性质看,数据可以分为四类,即数值型数据、字符型数据、逻辑型数据和对象型数据。2.2.1数值类型数值类型有整数类型与实数类型两种,整数类型的数据不带小数,实数类型带小数。1.整数类型整数类型又有有符号整数与无符号整数。有符号整数可以带正负号,无符号整数不需带正负号,默认为正数。有符号整数包括sbyte(符号字节型)、short(短整型)、int(整型)、long(长整型)。无符号整数包括byte(字节型)、ushort(无符号短整型)、uint(无符号整型)、ulong(无符号长整型)。byte(字节型):数据范围是0~255之间的整数,占用1个字节;sbyte(有符号字节型):数据范围是-128~127之间的整数,占用1个字节;short(短整型):数据范围是-32768~32767之间的整数,占用2个字节;ushor(无符号短整型):数据范围是0~65535之间的整数,占用2个字节;int(整型):数据范围是-2147483648~2147483647之间的整数,占用4个字节;uint(无符号整型):数据范围是0~4294967295之间的整数,占用4个字节;long(长整型):数据范围是-9223372036854775808~9223372036854775807之间的整数,占用8个字节;ulong(无符号长整型):数据范围是0~18446744073709551615之间的整数,占用8个字节。不同的整数类型表示的数值范围不同,为编程中根据对整数范围的需要进行灵活选择提5供了方便。2.实数类型实数类型包括float(单精度浮点型)、double(双精度浮点型)、decimal(十进制型)。float(单精度浮点型):数据范围是1.5×10−45~3.4×1038之间的数,占用4个字节;double(双精度型浮点型):数据范围是5.0×10−324~1.7×10308之间的数,占用8个字节decimal(十进制型):数据范围是1.0×10-28~7.9×1028之间的数,占用12个字节。float(单精度浮点型)可表示精度为7位;double(双精度浮点型)可表示精度为15位或16位;decimal(十进制型)可以表示具有28或29个有效数字,decimal适合财务和货币计算。2.2.2字符类型字符型数据包括单个字符类型与多个字符(字符串)类型。1.Unicode字符集Unicode是一种重要的通用字符编码标准,它覆盖了美国、欧洲、中东、非洲、印度、亚洲和太平洋的语言,以及古文和专业符号。Unicode允许交换、处理和显示多语言文本以及公用的专业和数学符号。Unicode字符可以适用于所有已知的编码。Unicode是继ASCII(美国国家交互信息标准编码)字符码后的一种新字符编码,如UTF-16允许用16位字符组合为一百万或更多的字符。C#支持Unicode字符集。2.char(字符型)char(字符型):数据范围是0~65535之间的Unicode字符集中的单个字符,占用2个字节。char(字符型)表示无符号16位整数,char(字符型)的可能值集与Unicode字符集相对应。虽然char(字符型)的表示形式与ushort(短整型)相同,但ushort(短整型)与char(字符型)意义不同,ushort(短整型)代表的是数值本身,而char(字符型)代表的则是一个字符。3.string(字符串型)string(字符串型):指任意长度的Unicode字符序列,占用字节根据字符多少而定。string(字符串型)表示包括数字与空格在内的若干个字符序列,允许只包含一个字符字符串,甚至可以是不包含字符的空字符串。2.2.3布尔类型和对象类型bool(布尔型):表示布尔逻辑量。bool(布尔型)数据范围是“true”(真)和“false”(假)。bool(布尔型)占用一个字节。bool(布尔型)的值“true”(真)和“false”是关键字。bool(布尔型)数据为程序进行复杂的判断提供了数据类型依据,另外在程序进行关系运算或逻辑运算时,将产生bool(布尔型)结果。object(对象型):可以表示任何类型的值,其占用字节视具体表示的数据类型而定。6object(对象型)是所有其
本文标题:第02章C语法基础
链接地址:https://www.777doc.com/doc-2190991 .html