Chs02C#语言基础.ppt_第1页
Chs02C#语言基础.ppt_第2页
Chs02C#语言基础.ppt_第3页
Chs02C#语言基础.ppt_第4页
Chs02C#语言基础.ppt_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

管理学院 Web应用开发技术 第 2 章 C#语言基础1 第 2 章 C#语言基础 C#语言及其特点1 中间语言代码与.NET的跨平台 3 2 C#的命名空间4 一个简单的C#程序3 C#的类和对象定义6 C#程序的构成5 C#的格式与数据类型7 运算符与表达式 3 8 定义方法10 方法定义与使用9 流程控制语句11 管理学院 Web应用开发技术 第 2 章 C#语言基础2 2.1 C#语言及其特点 C#读作“C sharp”,它是Microsoft开发的一种用于网络开发的新语言 ,结 合了C/C+的强大功能、Visual Basic的易用性。 v 要介绍C#语言,不能不提到微软公司的.NET。.NET是一种程序和Web 相结合的技术,它可以通过程序来动态、实时地控制页面的外观和显 示的内容。 v .NET的页面是通过程序来动态生成的,必须选择一种编程语言作为 Web开发的脚本语言,C#是为其定制的作为.NET开发的首选语言。 v C和C+一直是使用最广泛的程序开发语言,它们提供了强大功能,但 由于语言的复杂性给开发造成了一定的难度。Web应用程序开发者需 要的是能快速开发,并且不用对系统平台环境考虑很多,能够把现 有的应用和Web标准统一的语言。C#正是为满足这一要求而诞生的。 C#语言产生的背景 管理学院 Web应用开发技术 第 2 章 C#语言基础3 2.1 C#语言及其特点 C#是一种源自于C和C+的、简单的、完全面向对象的程序设计语言。C#语言虽 然是从C和C+演变而来,但在一些诸如命名空间、类、方法和异常处理等特定领域 进行了很大的改进与优化。 C#它不仅适合于网络开发,也可以开发古典风格的Windows应用程序。 跨平台性。为了实现跨平台,C#采用了即时编译器(Just In Time,JIT),但 它不是简单地移植和套用原有的JIT技术,而是JIT的发展与提升。 C#的面向对象的程度要比C+还要高。C#中的基本类型都是基于对象的,C#为每 一个基本类型都内建了相应的类,如Int32 是系统提供的一个类,基本类型int就 映射为类Int32。而C+中找不到这样的内建关系,C+只是提供了操作这些基本类 型的工具类,int 在C+中并不是基于对象的。 C#较C+在面向对象的开发上更简单,使用户使用起来更方便,而且 提供了非常强大的兼容性。 C#语言的主要特征 管理学院 Web应用开发技术 第 2 章 C#语言基础4 2.1 C#语言及其特点 C#源于微软的C+,又借鉴了Java的一些设计方法。下面,比较C#与C+和Java 的差异。 C#基本继承了C语言的语法风格,又继 承了C+的面向对象特征。但是,不能 简单地把C#看成C/C+在.NET框架上的 翻版。 C#的对象模型已经面向Internet进 行了重新设计,使用的是.NET框架的 类库 C#语言不再提供对指针类型的支持 ,程序不能访问内存地址空间; 在面向对象方面,C#不再支持多重 继承,避免了多重继承带来的一些问 题,相应的功能通过对接口的多重继 承来实现。 C#语言与C+比较 从程序结构上看,C#与Java极其相似 ,不过两者还是有明显的区别的。 Java是通过Java虚拟机(Java Virtual Machine,JVM)来实现平台的 可移植性,而C#则是首先将源代码编 译成一种中间语言(类似Java的字节码 ),执行时由公共语言运行时(Common Language Run,CLR)的JIT编译器编译 成本机代码; Java虚拟机只能执行Java程序,而 JIT编译器能编译任何.NET框架支持的 语言(包含C#、Visual Basic、J#)编 写的程序。 C#语言与Java比较 管理学院 Web应用开发技术 第 2 章 C#语言基础5 2.2 中间语言代码与.NET的跨平台 所谓“中间代码”是一种结构简单、含义明确的记号系统。中间代码是源程序的 一种内部表示,或称中间语言。中间代码的作用是可使编译程序的结构在逻辑上更 为简单明确,特别是可使目标代码的优化比较容易实现。 什么是中间语言代码 在以往的程序开发中,对程序源代 码进行编译后得到的.exe文件都是 为硬件所识别的机器代码,可直接 运行。但是这种机器码限制了程序 的可移植性,因为对于不同的计算 机或者不同操作系统,其指令系统 是不同的,这种硬件上的差异导致 在不同类型的计算机上使用的计算 机语言不同,需要针对不同类型的 CPU开发不同版本的编译器。例如, 在Windows平台上编译的程序不能在 Linux系统上运行,除非用Linux系 统上的编译器重新编译。 .NET框架上提供了一个可移植的 交叉语言平台,使不同语言开发 的程序可以在不同的环境、不同 的CPU上运行。.NET框架的这种跨 平台程序移植能力是通过中间语 言(Microsoft Intermediate Language,MIL)来实现的。用 .NET框架支持的语言编写的源程 序编译后生成的.exe文件不能被 计算机直接识别运行,这样的 .exe文件被称为Microsoft中间语 言文件。本质上说,MIL是内存中 的源程序。 管理学院 Web应用开发技术 第 2 章 C#语言基础6 2.2 中间语言代码与.NET的跨平台 MIL文件是通过.NET Framework的虚拟机被称之为通用语言运行时.NET CLR 执行。在执行的时候,MIL文件会自动调用CLR中的JIT再次编译,生成机器码,由计 算机的CPU处理执行。其运行过程如下图所示。 图 C#程序的编译执行过程 C#生成的中间语言文件MIL与其他的.NET语言(Visual Basic、J#、C+等)生 成的MIL语言完全相同。由于CLR也是共用的,因此,不同语言开发的程序都可 以在.NET框架的平台上运行。 在程序执行时,JIT会分析中间代码并动态产出高效率的机器执行码,因此, 其运行速度快;另外,Java虚拟机仅局限于Java语言程序,而.NET框架中的 JIT是语言交叉的,支持多种语言。 中间语言代码的执行 管理学院 Web应用开发技术 第 2 章 C#语言基础7 一个简单的C#程序 一般高级语言编程需要经过三个过程,即: v(1)源程序编辑 v(2)目标程序编译生成 v(3)可执行程序运行 C#编程也不例外,也包括源程序的编辑、编译生成中间语言和解释运行中间码几 个步骤。 C#的编辑与运行 如果计算机上没有安装.Net Framework,那么这些程序将不能够被执 行。在程序执行时,.Net Framework将中间代码翻译成为二进制机器 码,从而使它得到正确的运行。最终的二进制代码被存储在一个缓冲 区(Buffer)中。所以一旦程序使用了相同的代码,那么将会调用缓冲 区中的版本。这样如果一个.Net程序第二次被运行,那么这种翻译不 需要进行第二次,速度明显加快。 具体来讲,C#程序的开发方式如下 :使用任何文本编辑器(如:记事 本、Editplus等)编写程序代码, 并以.cs保存源文件,使用命令行 编译器(csc.exe)进行编译;运行 编译后的可执行程序文件。 管理学院 Web应用开发技术 第 2 章 C#语言基础8 2.3 一个简单的C#程序 下面以一个最简单的C#程序为例来分别介绍这三个过程。 程序2.1是一个最简单的C#程序的例子 其功能是在屏幕上输出: “Hello,欢迎来到 C# Word !”。 Hello.cs using System; namespace mynamespace class myclass static void Main() Console.WriteLine(“Hello, 欢迎来到 C# Word !“); Console.ReadLine(); 首先引用了系统命名空间System,因为所 有的程序都要用到该命名空间下的类。 接着创建了一个命名空间mynamespace,在 该命名空间声明并定义了一个类mycalss ,该类包含了一个静态的成员方法Main() ,作为执行程序的入口。该方法调用控制 台(Console)的WriteLine方法输出 “Hello,欢迎来到 C# Word !”。 管理学院 Web应用开发技术 第 2 章 C#语言基础9 2.3 一个简单的C#程序(续) 建立了该C#程序文件后,下一步就是用.NET框架中包含的编译器 csc.exe 来编 译该程序文件。编译方式如下: csc Hello.cs 需要注意的是:编译器文件csc.exe 是在DOS下运行的,编译时必须进入DOS环 境,并且设置该执行文件所在的路径 path = C:WINDOWSMicrosoft.NETFrameworkv1.1.4322,或 v2.0.50727 其中v1.1.4322和v2.0.50727是版本号,其中v1.1.4322是版本号。 C#的编辑与运行 管理学院 Web应用开发技术 第 2 章 C#语言基础10 2.3 一个简单的C#程序(续) 编译完成后,就可以运行该程序了。由于是控制台方式,必须在DOS环境下 运行,在DOS方式下键入Hello 管理学院 Web应用开发技术 第 2 章 C#语言基础11 2.3 一个简单的C#程序(续) 如果安装了Visual Studio.NET,那么可以在Visual Studio .NET 2003 或Visual Studio .NET 2005命令提示下来执行 csc.exe 编译器 ,此时,不需要再指定 csc.exe 的路径。 Visual Studio Tools-Visual Studio 2005命令提示 C#编译器不仅可以生成.exe文件,也可以通过选项/t:library生成 .dll文件,其中的t的含义是target。 程序2.1中如果要生成.dll文件,编译方式如下: csc /t:library Hello.cs 管理学院 Web应用开发技术 第 2 章 C#语言基础12 2.3 一个简单的C#程序(续) 如果觉得DOS环境下的编译太繁琐,那么EditPlus是一个 很不错的选择 EditPlus是一个功能强大的文本编辑器,EditPlus对于 HTML、CSS、PHP、ASP、Perl、C/C+、C#及 VBScript 的语 法突显使得它特别适合编辑文本格式的各种程序代码文件, 尤其是它的HTML 页面预览功能使得它适合编辑HTML文件, 并且还具有FTP 命令可以实现本地文件上传到 FTP 服务器 的功能,同时它提供了支持多种语言的集成 编译、运行环境。 EditPlus编辑、编译与运行环境 管理学院 Web应用开发技术 第 2 章 C#语言基础13 EditPlus编译环境的设置 下面以C#语言为例详细说明编译环境的设置 在“工具参数选择用户工具”选项页进行设置 设置步骤如下: 设置组名称,这里也可以不设置,取缺省的设置Group 1 单击“添加工具应用程序”按钮,进入设置界面 在菜单文本编辑框输入菜单项的名次 在命令编辑框输入编译器(csc.exe)所在的路径和文件名称 各种参数可以在文本框右侧的下拉菜单中获取。 以C#为例,其编译环境设置参数如下: 菜单文本:编译 C# 命令:C:WINDOWSMicrosoft.NETFrameworkv1.0.3705csc.exe 参数:$(FileName) 初始目录:$(FileDir) 捕获输出:开启 管理学院 Web应用开发技术 第 2 章 C#语言基础14 EditPlus编译环境的设置(续) 打开EditPlus文本编辑器环境后,选择“工具”“参数选择”选项 ,打开“参数选择”对话框,选择“用户工具”选项进行设置,设置 的界面如下图 所示。 管理学院 Web应用开发技术 第 2 章 C#语言基础15 EditPlus编译环境的设置(序) 设置完毕后,你就可以在“工具”菜单运行对应的工具了。编译结 果会显示在底部的输出窗口,可以通过“用户工具栏”的快捷按钮编译 当前编辑的文件。 管理学院 Web应用开发技术 第 2 章 C#语言基础16 在EditPlus下运行C#程序 编译完成后,可以在EditPlus环境下直接运行,要在EditPlus环境下运行 已编译后的.exe 文件,你可以进行如下设置(此时可执行文件需要和编译文 件同名): v 菜单文本:C#运行 v 命令:$(FileNameNoExt) v 参数:无 v 初始目录:$(FileDir) 以C#为例,其编译环境设置参数如下: 菜单文本:C#编译(.exe) 命令:C:WINDOWSMicrosoft.NETFrameworkv1.0.3705csc.exe。 参数:$(FileName)。 初始目录:$(FileDir)。 捕获输出:(True)。 管理学院 Web应用开发技术 第 2 章 C#语言基础17 2.4 C#的命名空间 v 命名空间是一种松散的类的集合。C#中的命名空间把各种类组织在一起 ,使得程序功能清楚、结构分明。使用命名空间有利于实现不同程序间类的 重用,也有利于类的组织、管理与使用。 v 一般不要求处于同一个命名空间中的类有明确的相互关系,如包含、继 承等。但是由于同一命名空间中的类在默认情况下可以互相访问,所以为了 方便编程和管理,通常把需要在一起工作的类放在一个命名空间中。 v 命名空间可以看做一个由类的集合构成的组件(Component)。类库中的类 和接口都必须在相应的命名空间中定义,因此程序中多个命名空间都可以含 有相同的成员,却不会发生冲突。 什么是命名空间 管理学院 Web应用开发技术 第 2 章 C#语言基础18 2.4 C#的命名空间 将类组织在不同的命名空间的目的是为了更好地利用命名空间中的类。 可以使用如下两种方式来引用命名空间中的类。 1. 使用命名空间名作为类名前缀 可以通过类的完整命名空间(可以看做树的节点的路径)来唯一地定位命名空 间中的任何类。比如,要引用表示文件系统的类,可以使用以下代码: System.IO.File System.IO是命名空间,而File是特定的类。不同的命名空间中,可以定 义同名的类。例如: namespace First / class A的定义 namespace Second /class A的定义 两个命名空间中都定义了类A,但是可以独立使用First.A和Second.A,相互不会干扰。 命名空间的引用 管理学院 Web应用开发技术 第 2 章 C#语言基础19 2.4 C#的命名空间 2加载需要使用的命名空间 使用上面的方法,引用一个类时必须附加一个包含命名空间名的前缀,编程 中使用起来非常麻烦。另一个解决的方法是在程序文件的开始部分利用 using 语句将需要使用的整个命名空间加载到当前程序中,这样在程序中需 要引用这个类的地方就不需要再使用命名空间名作为前缀。例如: using System; 加载一个命名空间后,凡是这个命名空间中的类,都不需要再使用命名空 间名作为前缀。 例如: using System; namespace mynamespace class myclass static void Main() Console.WriteLine (“Hello, Wellcome to C# World!“); Console.ReadLine(); 管理学院 Web应用开发技术 第 2 章 C#语言基础20 2.5 C#程序的构成 不同的程序文件虽然功能和内容不同,但都有基本统一的框架结构。下面 仍以例子程序2.1为例来说明C#程序的构成。 using System; /加载.NET框架类提供的系统命名空间System namespace mynamespace /声明一个命名空间 mynamespace class myclass /声明一个类定义 static void Main() Console.WriteLine (“Hello, Welcome to C# World !“); 管理学院 Web应用开发技术 第 2 章 C#语言基础21 2.5 C#程序的构成 C#程序的典型结构特征 v C#用using导入命名空间。所有用到的类都要导入对应的命名空间。 v 用namespace 关键字声明一个命名空间,每个C#源代码文件可以包含一个或多个 命名空间。类、结构、接口等的定义必须包含在命名空间中。 v C#源程序是由类定义组成的,是类的集合。就好像任何一个C程序都是由若干个 函数组成的一样。每个程序中可以定义若干个类,但是只有一个类是主类(包含Main 方法的类),它是C#程序执行的入口点。但作为动态链接库(.dll)的C#程序的源代 码文件不必要求有Main方法,可以由若干相互关联或独立的类构成。使用关键字 class来定义类,每个类的定义由类头和类体部分组成。类头部分除了声明类名之外 ,还可以说明类的继承特性。类体部分包括属性和方法这两种类的成员。 v 在C#中不存在全局方法和变量,所有的变量和方法都包含在类的定义中。类体中 通常有两种成员:一种是域,包括变量、常量、对象数组;另一种是方法 是类似于C中的函数的代码单元块。 管理学院 Web应用开发技术 第 2 章 C#语言基础22 2.5 C#程序的构成 C#程序一般都有如下的典型的框架结构: using System; namespace mynamespace1 /命名空间mynamespace1 class myclass1 /类定义 struct mystruct /结构定义 interface myinterface /接口定义 delegate void MyDelegate(string name);/委托定义 enum myenum /枚举定义 namespace mynamespace2 /命名空间mynamespace2 class myclass2 /类定义 static void Main(string args) /类的Main方法 Console.WriteLine (“Hello, Welcome to C# World !“); 管理学院 Web应用开发技术 第 2 章 C#语言基础23 2.6 C#的类和对象定义 下面这个例子示范如何创建和使用用户定义的类以及如何创建动态链接库。 利用文本编辑器创建两个文件。内容如下。 第一个是Apple.cs public class Apple private string variety = “; public Apple(string appleVariety) this.variety = appleVariety; public void outputVariety() System.Console.WriteLine (variety); 首先,定义了一个新的用户定义类 Apple我们为Apple类的声明加上了 public修饰符(public class Apple) ,这样其他类就可以创建Apple类的实例 。 接着 定义了实例变量variety。修饰符 private表示只有在Apple类的内部才可 以直接访问variety变量。这是一种常见 的面向对象编程习惯,称为封装。 第3行定义了Apple类的构造方法,描述 如何创建类实例的蓝图。构造方法总是 和类具有相同的名字。 Apple类的另一个方法是 outputVariety() 管理学院 Web应用开发技术 第 2 章 C#语言基础24 2.6 C#的类和对象定义 第二个文件是Example.cs,内容如下。 Example.cs class Example static void Main() Apple mac = new Apple (“Macintosh “); Apple gra = new Apple (“Granny Smith“); Apple cor = new Apple (“Cortland“); mac.outputVariety(); gra.outputVariety(); cor.outputVariety(); Example类是创建并使用用户定 义类Apple的实例。 用new操作符创建了3个Apple类 的实例。创建类的实例时,new 操作符将自动调用类的构造方法 。 创建了3个Apple类的对象之后 ,依次调用这3个对象的 outputVariety方法,由 outputVariety方法输出这3个对 象里variety的值。 管理学院 Web应用开发技术 第 2 章 C#语言基础25 2.6 C#的类和对象定义 下面来编译和运行这个例子 首先要把Apple类编译成动态链接库: csc /t:library Apple.cs /t:library表示不要创建执行文件,上面的命令将生成一个Apple.dll文件。 接下来编译Example.cs,编译命令如下所示: csc /reference:Apple.dll Example.cs 其中,参数/reference:Apple.dll表示Example.cs要用到Apple.dll中的类、属性或 方法,如果Apple.dll文件是保存在当前应用的/bin子目录下,编译时可以省略 /reference:Apple.dll参数,编译器会自动寻找所用到的.dll文件。 编译后得到了执行文件Example.exe,执行这个文件可以在控制台上看到如 下输出: Macintosh Granny Smith Cortland 管理学院 Web应用开发技术 第 2 章 C#语言基础26 2.7 C#的格式与数据类型 标识符是用于标记变量、常量、方法、对象、类等元素的字符串,这个字符 串是这些元素的定义、赋值和引用时使用的唯一标识。标识符由编程者自由 指定,但必须遵循一定的语法规定。 C#对于标识符的定义有如下的规定: v 标识符的首字符必须为字母、下划线或,接下来的字符可以是字母、数字或下 划线。 v 标识符中不应使用C的保留字(见表2.2),如果一定要用保留字,最好使用作 为前缀。 v C#是大小写敏感的语言。class和Class。System和system分别代表不同的标识 符,在定义和使用时要特别注意这一点。 v 允许在标识符中使用Unicode转义符(见表 2.3)。 C#的标识符 标识符实例: 下面的标识符是正确的: myClass _var BIGNUMBER 下面的标识符不正确: 6TerOfButton class shoe-size 为了便于理解和阅读,应该使标识 符能在一定程度上反映它所表示的变 量、常量、对象或类的语义。 管理学院 Web应用开发技术 第 2 章 C#语言基础27 2.7 C#的格式与数据类型 在书写C#源代码时,应遵循以下的基本规则: v每行以分号“;”结尾。 v 空行和缩进被忽略。 v 多条语句可以处于同一行,之间以分号“;”分隔即可。 注释语句有两种形式: v/ 这是我的注释 v/*这是我的注释 v 华中科技大学*/ C#书写规则 注意事项 习惯VB的人很容易漏了语句末尾的 分号,或者随便使用变量但是不声明 ,这在C#默认情况下是不允许的; Visual Basic中数组元素用()引用, 但C#中数组元素要用方括号引用。 管理学院 Web应用开发技术 第 2 章 C#语言基础28 2.7 C#的格式与数据类型 最常见的两大类数据类型是值类型和引用类型。值类型也可以称为基本数据 类型,包含简单类型(如整型int、浮点型float等)、枚举类型、结构类型3种。 v基本数据类型是C#语言中提供的、无法再分解的一种预定义类型 v引用类型包含的数据类型有字符串类型、数组类型、类类型、对 象类型、接口类型和代理类型。 表2.4列出了C#中定义的所有数据类型,可以看出C#的数据类型的设置与C 语言相近,但C#对其数据类型的取值范围作了扩充。其中string和object类 型是引用类型,其他的都是基本数据类型。 C#的数据类型 需要说明的是:C#的字符数据类型char与其他语言相比有较大的改进。C语言等的 字符类型是采用ASCII编码 。 C#的字符类型采用了一种新的国际标准编码方案, 即Unicode编码。共可表示65535个不同的Unicode字符,无论东方字符还是西方字 符都可以统一用一个字符表达。引用类型string表示Unicode字符序列。 管理学院 Web应用开发技术 第 2 章 C#语言基础29 2.7 C#的格式与数据类型 C#语言是强制类型语言,编译器会自动检测程序代码中的数据类型是否 相容,如果不相容则自动进行数据类型转换。 编译器能够自动进行的数据类型转换称为隐式转换。隐式转换不会发生数 据的损失,也无须程序设计人员介入,由系统自动完成。 例如,将byte类型的值赋给int变量时,系统会自动将其转换为int类型。 byte bb = 50 ; int ii = bb ; 通常,从小值域范围的类型(如short)到大值域范围的类型 (如int、long)系统会自动 进行隐式转换。 C#的数据类型转换 管理学院 Web应用开发技术 第 2 章 C#语言基础30 2.7 C#的格式与数据类型 如果编译器不能完成隐式转换,就需要用户进行数据类型的显式转换。C# 语言的数据类型显式转换有以下3种方式。 1使用强制类型转换运算符“()” 转换格式为: (类型)数据 ; 例如,ii 是 int类型,要将其转换为 short类型,可使用下面的强制类型转换语句 : int ii = 50 ; short ss = (short)ii ; C#的数据类型转换 管理学院 Web应用开发技术 第 2 章 C#语言基础31 2.7 C#的格式与数据类型 2使用System.Convert类的静态成员方法 Convert类位于命名空间System中,其静态方法如表 2.5所示。 例如: int ii = 100; string str = System.Convert.ToString(ii) ; 3使用.NET框架提供的Parse()方法 在.NET中,每种基本数据类型都定义了相应的结构,结构都封装了与名称对应的数 据类型,并且带有一个静态的Parse()方法,用于相应的类型转换。 例如: float f = 200; string s = f.ToString() ; C#的数据类型转换 管理学院 Web应用开发技术 第 2 章 C#语言基础32 2.7 C#的格式与数据类型 2使用System.Convert类的静态成员方法 Convert类位于命名空间System中,其静态方法如表 2.5所示。 例如: int ii = 100; string str = System.Convert.ToString(ii) ; 3使用.NET框架提供的Parse()方法 在.NET中,每种基本数据类型都定义了相应的结构,结构都封装了与名称对应的数 据类型,并且带有一个静态的Parse()方法,用于相应的类型转换。 例如: float f = 200; string s = f.ToString() ; C#的数据类型转换 管理学院 Web应用开发技术 第 2 章 C#语言基础33 2.7 C#的格式与数据类型 常量是在程序运行过程中保持不变的量。常量有直接常量和符号常量。 直接常量是在程序中直接书写的数值或字符串等,如123、66.88, “This is a message for C#”。 符号常量是用 const修饰的、具有特定值的标识符,其声明方式为: const 类型 常量名 = 初始值; 例如: const double pi = 3.1415926; const string univName = “HUST” ; 符号常量必须在声明的时候赋初值,而且一旦初始化后,就不能再赋值。C# 中常用的常量有布尔常量、整型常量、字符常量、字符串常量和浮点常量。 C#常量 管理学院 Web应用开发技术 第 2 章 C#语言基础34 2.7 C#的格式与数据类型 1布尔常量 布尔常量包括true和false,分别代表真和假。而在C#中,bool类型不能与其他数据 类型转换。 2整型常量 整型常量可以用来给整型变量赋值。如-386L、017777l。 3浮点常量 浮点常量表示可以含有小数部分的数值变量。可以分为一般浮点常量float类型和双 精度浮点常量double类型两种。浮点常量用F、f表示,如32.4F、543.62f;双精度 浮点常量用D或d表示,如700041.273d或700041.273,系统默认其为双精度浮点常量 。浮点常量还有指数表示法,如3.0513E3是指数形式表示的常量。 4字符常量 字符常量用一对单引号括起的单个字符表示。如a、Z、8、#,也 可以是要表示的字符所对应的Unicode码。 5字符串常量 字符串常量是用双引号括起的一串若干个Unicode字符。双引号必须在源代码的同一 行上。可以使用连接操作符(+)把两个或更多的字符串常量串接在一起组成一个更长 的字符串。例如:How do you do? +n“ 管理学院 Web应用开发技术 第 2 章 C#语言基础35 2.7 C#的格式与数据类型 变量是在程序的运行过程中数值可能发生变化的数据,通常用来记录运算中 间结果或保存数据。C#中的变量必须先声明后使用,声明变量包括指明变量 的数据类型和变量的名称,必要时还可以指定变量的初始数值。变量的声明 格式如下。 访问修饰符 数据类型 变量名 =初始值; 变量声明是一个完整的语句,所以它与其他C#语句一样需要用分号结束。 例如: int size=5;/声明整数型变量size,并对其初始化 float f;/声明浮点型变量f f=4.67f;/给变量赋值 C#的变量 管理学院 Web应用开发技术 第 2 章 C#语言基础36 2.7 C#的格式与数据类型 变量的命名应遵循标识符命名规则,变量声明时可以直接给变量赋初值。在C#中要求 对变量明确赋初值,使用未初始化的变量会导致编译错误。如果变量声明时没有给变 量赋初值,变量会带有表 2.7所示的默认的初始值。 变量的定义举例如下: int ii = 1; string cname = “RMIT University”; Boolean married = true; C#的变量 C#的变量有一定的生存期和有效范围。C#变量的有效范围就是声明它的语句所在的语句块,一 旦程序的执行离开了这个语句块,变量就变得没有意义了。例如: int sum=0; for(int i=0;i = 赋值运算= += -= *= /= %= /定义一个累加器,初值为 0 for (int ii = 1; ii b) if (a c) max = a; else max = c; else if (b c) max = b; else max = c; Console.WriteLine(“3个数中最大值是:“ + max.ToString(); return max; 管理学院 Web应用开发技术 第 2 章 C#语言基础51 2.11 流程控制语句 v switch语句 switch 语句是多分支的开关语句,它的一般格式如下: switch (条件或变量表达式) case option1: break; case option2: break; default: break; 需要注意的是,switch语句的每一个 case判断,都只负责指明流程分支的入 口点,而不负责指定分支的出口点,分 支的出口点需要编程人员用相应的跳转 语句来标明。 所以每个分支的语句块最后一个语句应 该是流程跳转语句“break;”,它的作 用是跳转出整个switch语句。 管理学院 Web应用开发技术 第 2 章 C#语言基础52 2.11 流程控制语句 int n; string sweek; switch (n) case 1: sweek =“星期一”; case 2: sweek =“星期二”; case 3: sweek =“星期三”; case 0: sweek =“星期日”; 假设变量n的值为1,执行完switch语句 后,变量sweek的值被赋成什么呢? 是“ 星期日”,而不是“星期一”。因为 case判断只负责指明分支的入口点,表 达式的值与第一个case分支的判断值相 匹配后,程序的流程进入第一个分支, 将sweek的值置为“星期一”。 由于没有专门的分支出口,所以流程将 继续沿着下面的分支逐个执行,sweek的 值依次被置为“星期一”、“星期二” ,最后变成“星期日”。如果希望程序 的逻辑结构正常完成分支的选择,则需 要为每一个分支另外编写退出语句break ; 。 管理学院 Web应用开发技术 第 2 章 C#语言基础53 2.11 流程控制语句 为什么C#的switch的每个分支需要增加一个break呢?这是因为在某些情况 下,switch语句的这个只有分支入口、没有出口的功能也有它独特的适用场 合。如在若干判断值共享同一个分支时,就可以实现由不同的判断语句流入 相同的分支。 下面的例子是根据学生的成绩判断是否及格与不及格: switch (stGrade) case A : case B : case C : stScore = “及格”; break ; default: stScore = “不及格”; 管理学院 Web应用开发技术 第 2 章 C#语言基础54 2.11 流程控制语句 循环结构是在一定条件下,反复执行某段程序的流程结构,被反复执行的 程序被称为循环体。 循环结构是程序中非常重要和基本的结构,它是由循环语句来实现的。 C#的循环语句共有3种:while语句、do while语句和for语句。 v while语句 while语句的一般语法格式如下: while (条件表达式) /循环体 循环语句 条件表达式的返回值为布尔型 由括起来的循环体是由多条语句组成 的语句块,也可以是单个语句(此时, 可以省略)。 while语句的执行过程是先判断条件表达 式的值,若为真,则执行循环体,循环 体执行完之后再检查循环条件,直到条 件表达式为假时,跳过循环,执行循环 体语句后面的语句。 管理学院 Web应用开发技术 第 2 章 C#语言基础55 2.11 流程控制语句 v do while语句 do while语句的一般语法结构如下: do /循环体

温馨提示

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

评论

0/150

提交评论