电子教案 第2章 C# 2008面向过程基本元素.ppt_第1页
电子教案 第2章 C# 2008面向过程基本元素.ppt_第2页
电子教案 第2章 C# 2008面向过程基本元素.ppt_第3页
电子教案 第2章 C# 2008面向过程基本元素.ppt_第4页
电子教案 第2章 C# 2008面向过程基本元素.ppt_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2章 C# 2008中面向过程基本元素,应用程序处理的对象是数据,而数据是以某种特定的形式存在的(例如整数、实数、字符、布尔型等形式)。不同的数据之间往往还存在某种组织,构成了所谓的数据结构。例如,数组就是一种数据结构。不同语言所允许定义和使用的数据和数据结构是不同。 C#语言中数据有常量与变量之分。它们分别有各种类型。由这些数据类型还可以构成更复杂的数据结构。例如结构体、枚举等。,2.1 基本语法格式,C# 2008语法来源上看起来像C和C+,如果读者曾经使用过这些语言,那么在学习C# 2008基本语法上,会感到很熟悉。不过,在使用的过程中,会很快发现C# 2008程序风格鲜明,而且可读性

2、强。其编译器是不计空白符(包括Tab键、空格键等)的,所以各种不同风格的程序员可以用自己习惯的风格格式化代码。,2.1.1 语法概述,在C# 2008代码中,会看到各种标点符号来分割一系列语句。可不要小看这些标点符号,假如写错一个标点符号,编写的程序就有可能编译不通过。所以,就从这些小小的标点符号来开始C# 2008语法的学习。下面提供了C# 2008中使用的标点符号和它们的说明。 分号“;”:指明一条代码语句的结束。 冒号“:”:,2.1.2 C# 2008中的注释,在C# 2008中,注释就像空白符一样,会被忽略,但是在编写代码的时候非常有用。C# 2008有两种标准注释方式。第一种方式是

3、单行注释,在注释开头处加上标识符,用于提示编译器忽略这一行后续的部分。第二种方式是多行注释,在注释的开头和结尾都加上标识符。单行注释用两个正斜线来表示。例如: / 这是注释。 单行注释中,该行“/”之后的文本都会被编译器认为是注释,注释自动在行尾结束,其只能用于单行注释。多行注释用“/*”字符串开始,以“*/”字符串结束。例如: /*这是注释*/ /*这也是 注释*/,2.2 常量和变量,C# 2008是强类型语言,所以常量和变量都必须先声明类型。当声明了类型后,计算机就会知道处理什么样的数据,以及采用哪种格式保存数据等。 在以前编写程序时(使用C和C+),没有提供丰富的数据类型,开发人员必须

4、把基本数据类型组合到类和结构中,自己构建数据类型或者使用存储在头文件中的模板代码(STL)或复杂的专用库,例如MFC。现在,在C# 2008语言中,其支持CTS(Common Type System),其中的数据类型集合不仅包括熟悉的基本类型,例如int类型、char类型和float类型等,还包括比较复杂的类型,例如string类型和decimal类型。C# 2008语言中,包括两种类型。 值类型:值为固定长度的数据,存储在堆栈中。包括简单类型、枚举类型和结构类型等。 引用类型:值存储在堆中。包括类类型、数组类型和接口类型等。,2.2.1 C# 2008预定义类型,【本节示例参考:示例代码Ch

5、ap02TypeUse】 C# 2008语言中,值类型可以分为: 简单类型(内建类型)。 结构(用户定义的值类型)。 枚举。 简单类型,是直接由一系列元素成员构成的数据类型。均为.NET框架系统类型的别名,从计算机角度可以把简单类型分为: 整数类型。 布尔类型。 实数类型。,2.2.2 常量,在程序运行过程中,值不能被改变的量称为常量,即常量就是值固定不变的量。常量的型可以是任何一种。声明常量的格式: attributes constant -modifiers const type constant-declarators; 在上述声明中,常量修饰符constant modifiers可以是

6、new、public、protected、internal、private。而type可以是sbyte、byte、short、ushort、int、uint、long、ulong、char、float、double、decimal、bool、string。例如: public const int x =1;,2.2.3 变量,在程序运行的过程中,值可以改变的量称为变量。一个变量应该有一个名字,在内存中占据一定的存储单元,在该单元中存放变量的值。与常量不同,变量的值可以反复赋数值。读者要区分变量名和变量值,变量名实际上是一个符号地址,在对程序编译时由系统给每一个变量名分配一个内存地址。在程序中从

7、变量中取值,实际上是通过变量名找到相应的内存地址,从存储单元中读取数据。 1声明变量 2赋值变量 3变量的类型,2.3 运算符、表达式及优先级,上一节介绍了类型和变量,数值类型的常用操作即为数值计算,而计算就要涉及运算符。如果没有运算符,那些类型就是静止的,不能反应或执行有用的任务。C# 2008中的表达式,是由运算符、操作对象和标点符号链接而成的。 C# 2008提供了大量的运算符,按照其处理操作数的不同大致可以分为3类,即一元运算符、二元运算符和三元运算符。主要的运算符如表所示。,2.3.1 算术运算符和算术表达式,【本节示例参考:示例代码Chap02NumberCirculation】

8、C# 2008提供的算术操作符有五种: +加法运算符。 减法运算符。 *乘法运算符。 /除法运算符。 %求余运算符。,2.3.2 赋值运算符和赋值表达式,【本节示例参考:示例代码Chap02Compoundoperator】 C# 2008提供了“=”赋值运算符,同时与赋值运算符相近的运算符还有“+=、=、*=、/=、=、=”等复合赋值运算符。赋值的作用就是将一个数据赋给一个变量。例如“a=3”的作用就是将数据3赋给变量a。赋值的左边必须是一个变量,属性访问器或索引访问器的表达式。 在C# 2008中如果赋值运算符两边的操作数类型不一致,那就先要进行类型转换,同时赋值运算符还可以对变量进行连续

9、赋值,例如a=b=c的表达式等价于a=(b=c)。读者要注意“=”操作符是右关联的。所以出现上面的等价关系。,2.3.3 关系运算符和逻辑运算符及表达式,【本节示例参考:示例代码Chap02Difference】 严格的说关系运算符也是路基运算符的一种,因为关系表达式的返回值总是布尔值。关系运算符用来比较两个值。它有=、!=、=和=。逻辑运算符用来扩展条件语句。运算符号中?:是三元运算符,&、|、&、|是二元操作符,而!是一元操作符。,2.3.4 位运算符和位运算,【本节示例参考:示例代码Chap02ByteOperation】 在计算机中,任何信息都是以二进制形式保存的,“&”、“|”、“”

10、除了可以作为 逻辑运算符,也可以作为位运算符,它们对两个操作数中的每一个二进制位都进行运算。除了这些位运算操作外,还有和可以对数据按二进制位进行位操作。在这些运算符号中,只有是一元运算符,而其他的都是二元运算符。同时,运算符的操作数只能是整数型或字符型的数据,不能为实型数据。位运算符号的简要说明见表。,2.3.5 其他特殊操作符,除了上面的各种操作符号外,还有一些特殊的操作符号,如下: 1三元操作符 “?:”三元操作符也称为条件操作符,该操作符是右关联的。例如:表达式“a?b:c?d:e”将按“a?b:(c?d:e)”形式执行。该运算符的运算规则对于条件表达式“a?x:y”,先计算条件a,然后

11、进行判断。如果a的值为true,就计算x的值;否则计算y的值。 2自增和自减操作符 自增和自减操作符有前后缀之分。对于前缀操作符的规则是“先增减,后使用”,而后缀操作符则正好相反,是“先使用,后增减”。 3Checked和unchecked操作符 Checked和unchecked操作符用于整型算术运算时控制当前环境中的溢出检查。,2.3.6 运算符的优先级,优先级就是在表达式中的运算顺序,上述介绍的运算符都有不同的优先级。各运算符的优先级详细见表。,表2-16 运算符优先级,2.4 程序的流程控制,从结构化程序设计角度出发,程序有三种结构,使程序的执行重定向到代码的不同部分。它们分别是顺序结

12、构、选择结构和循环结构。结构的使用主要体现了开发人员的思维,如果开发人员的思维清晰,可以利用结构产生逻辑明晰合理的代码,混乱的思维往往会产生含有逻辑错误的代码。,2.4.1 选择结构,当程序中需要进行两个或两个以上的选择时,可以根据条件判断来选择将要执行的一组语句。C# 2008中提供了if和switch语句。 1if语句:if-else是常用的关键字,在C# 2008中会被大量用于条件判断等场合。if语句有多种形式的应用。 2if语句的嵌套:在if语句中又包括一个或多个if语句成为if语句的嵌套。 3switch语句:switch语句是多分支选择语句,用于将一个表达式的值同许多其他值比较,并

13、按比较结果选择下面该执行哪些语句。虽然,上述的功能可以用嵌套的if语句来处理,但分支较多、嵌套的语句层数多、程序冗长且可读性低。,2.4.2 循环结构,循环结构是结构化程序设计的基本结构之一,它和顺序结构、选择结构共同作为各种复杂程序的基本构造单元,提供了根据指定条件反复执行某部分代码的功能。C# 2008提供了while语句、dowhile语句和for语句。 1while语句 2dowhile语句 3for语句 4foreach语句 5循环的嵌套 6中止循环,2.5 类型转换,在编写程序过程中,会经常遇到这种情况,就是需要将一种数据类型的值赋给另一种不同数据类型的变量。例如,从int类型转换

14、到long类型数据类型之间的转换等,由于数据类型有差异,在赋值时就需要进行数据类型的转换。在C# 2008中提供了如下的转换: 隐式转换。 显式转换。 使用命令的显示转换。,2.5.1 隐式转换,【本节示例参考:示例代码Chap02TestTransformation1】 隐式转换就是不需要加以进行的转换,即在转换过程中,编译器无需对转换进行详细检查就能够安全的执行转换。实际上就是从低精度的数值类型向高精度的数值类型转换。要实现隐式转换,需要同时满足两个条件,第一是两种类型彼此兼容,第二是目标类型的取值范围要大于源类型。一般来说,转换的过程中要保证不会导致信息丢失。 隐式转换的类型有隐式数值转

15、换、隐式枚举转换和隐式引用转换;其发生的场合也包括函数调用、表达式计算和分配等。,2.5.2 显式转换,【本节示例参考:示例代码Chap02TestTransformation2】 当两种类型不满足隐式转换的两个条件,即两种类彼此不兼容,或目标类型取值范围小于源类型时,隐式转换就无法进行,这时就需要进行显式类型转换。显式类型转换又叫强制类型转换,需要用户必须明确的指定转换的类型。显式类型转换的通用格式如下: 目标类 变量 =(目标类型)值,2.5.3 使用命令的显示转换,【本节示例参考:示例代码Chap02TestTransformation3】 通过convert类提供的方法也可以实现各种类型的转换,其提供的方法如表所

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论