《C#程序设计-全套电子课件完整版ppt整本书电子教案最全教学教程整套课件.ppt》由会员分享,可在线阅读,更多相关《C#程序设计-全套电子课件完整版ppt整本书电子教案最全教学教程整套课件.ppt(380页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、121世纪高等院校计算机系列教材C#程序设计2第第1章章 C#背景知识背景知识1.1 C#的历史的历史1.2 Microsoft.NET框架框架1.3 什么是程序什么是程序1.4 编程原则编程原则1.5 编程陷阱编程陷阱1.6 小结小结31.1 C的历史的历史v1960年前后,一种名为Algol60的程序设计语言诞生了。v大约在1970年,B语言被改写成C语言。v大约在1980年,Stroustrup创建了C+。vMicrosoft在2002年宣告了C#语言的诞生。41.2 Microsoft.NET框架框架Microsoft在2002年推出一个名为.NET框架的新主流产品。其主要特性有:v包
2、括编程语言C#、VisualBasic和C+。v具有帮助程序员创建交互网站的实用工具。v.NET也可用于其他操作系统。v它允许构建由组件(“对象”)组成的软件,并且可以在网络上发布。51.3 什么是程序什么是程序本节告诉读者程序是什么。举一个简单的程序例子:v弄湿头发v倒一点洗发水v用洗发水揉搓头发v清洗头发这个程序阐明了程序是要执行的指令序列,从第一条指令开始,逐条执行,直到指令序列结束。返回目录6概括地说,程序是计算机自动执行的一系列指令。程序由以下部分组合而成:v顺序。v循环。v选择。v方法。v现有对象。v自己编写的对象。所有现代程序设计语言都具有这些特性。71.4 编程原则编程原则v程
3、序由指令组成,这些指令结合了顺序、选择、循环和子任务这些概念。v利用现有组件可简化编程任务。81.5 编程陷阱编程陷阱v人为错误可以带入到程序中,例如,指令顺序错误、逻辑错误、书写错误。91.6 小结小结vC#是面向对象的程序设计语言,它源于C+和Java。vMicrosoft的.NET框架是一个主流产品,它可以使用C#、C+和VisualBasic语言。v程序是计算机自动执行的一系列指令。v当前编程实践的主要趋势是面向对象程序设计(OOP)方法,C#完全支持该方法。10第第2章章 C#开发环境开发环境2.1 简介简介2.2 安装与配置安装与配置 2.3 创建第一个程序创建第一个程序 2.4
4、设计时控件设计时控件2.5 事件和事件和Button控件控件 2.6 打开一个现有工程打开一个现有工程 2.7 属性设置的文档化属性设置的文档化 2.8 程序错误程序错误112.9 编辑器工具编辑器工具 2.10 消息对话框消息对话框 2.11 帮助帮助 2.12 编程原则编程原则 2.13 编程陷阱编程陷阱 2.14 语法点语法点 2.15 新的语言元素新的语言元素 2.16 新的新的IDE工具工具 2.17 小结小结 122.1 简介简介本书中使用IDE表示C#集成开发环境。正如字处理程序提供创建文档的工具一样,IDE提供创建(开发)程序的工具。IDE集成了用户所需的全部工具,因此可以在它
5、的内部完成全部工作,而无须再借助其他程序。IDE提供了一个完全的编程环境。本章将讨论Microsoft的IDE,也可以从其他来源得到C#的IDE。132.2 安装与配置安装与配置Microsoft提供两类产品,使用它们均能创建C#.NET程序:vVisualStudio.NET系统,该系统还包括其他语言。vC#.NET系统,只包括C#。无论使用哪个系统,都需要遵循相应的安装程序。142.3 创建第一个程序创建第一个程序首先使用WindowsExplorer创建一个工作目录,然后将以后所建立的工程文件全部保存这个目录中,统一进行管理。操作步骤:v运行IDE集成开发环境。出现StartPage。v
6、单击NewProject按钮。将出现NewProject窗口。v单击WindowsApplication。v为该工程指定一个存储位置,并为它命名。需要提供一个名称,它将成为一个文件夹的名称。注意,该名称只能由字母、数字和空格组成。这里选择FirstHello。v接下来需要定位FirstHello文件夹。IDE会记住你将所做的工作存储在哪里,但创建第一个工程的时候,需要单击Browse按钮。这时打开一个ProjectLocation窗口。找到你将存储所有C#工作成果的文件夹(这里是C#Projects)并单击OK按钮。v在ProjectLocation窗口,单击Open按钮。从现在开始,IDE将
7、把所有新建的工程文件夹存储在C#Projects文件夹中。v最后,在NewProject窗口中单击OK按钮。152.4 设计时控件设计时控件什么是控件?控件是显示在屏幕上的“小配件”,用来显示信息、允许用户交互或身兼这两个功能。162.5 事件和事件和Button控件控件事件:例如鼠标单击、双击或悬停在某个控件上这都是事件。也有很多事件不是由用户生成的,例如,一个网页在结束下载时发出的通知,也是一个事件。Button控件:使用按钮控件,可以触发按钮事件,然后执行一系列的指令集。172.6 打开一个现有工程打开一个现有工程要重新打开以前创建的工程,请保存并关闭正在使用的当前工程,并进入Start
8、Page。它显示最近的工程。要打开一个最近的工程,只需单击工程名称。182.7 属性设置的文档化属性设置的文档化本书中提供一些控件的设置。对于少数几个属性而言,可以用几个句子来解释它们。如果属性数量很多,就需要使用表来表示。通常有很多控件,而每个控件又有很多属性,每个属性有一个或者几个值。192.8 程序错误程序错误每个人在编程之初都会面对大量的编译错误。这是学习过程的一个必经阶段。编译错误列在TaskList窗口中,该窗口在代码下方打开。在输出窗口中双击错误将带你到代码中出错的地方,并在那里改正错误。只有改正全部编译错误之后,程序才能运行。202.9 编辑器工具编辑器工具编辑器的一些工具:v
9、标准的剪切板剪切、复制和粘贴。v编写较大程序的控件和事件。v通过插入其他的空格来缩进键入的某些行。v每一类控件都有一组不同的属性。v将目前不使用的代码段压缩为一行代码。返回目录212.10 消息对话框消息对话框消息对话框是用来给用户提示一些信息或者提示一些信息由用户进行选择判断,然后程序根据用户做出的选择,继续执行下去。消息对话框不在工具箱中,它只在需要的时候弹出。222.11 帮助帮助C#具有一个大型的帮助系统,它包含的信息对你很有帮助。(当在编写程序代码时,如果想对某一个函数具体了解时,可以将光标移动到这个函数上,然后按F1键,这时就会出现相应的函数帮助,在这之前必须安装MSDN帮助文档。
10、)232.12 编程原则编程原则v在设计时在窗体上放置控件。v在设计时设置控件的属性。v程序可以在运行时改变属性。v当事件(比如单击按钮)发生时,C#系统使用匹配的方法。在该方法中放置代码以处理此事件。242.13 编程陷阱编程陷阱v在试图修改窗体或代码之前忘记中止运行程序。v混淆设计时窗体和运行时窗体。设计时窗体上具有网格点。v在需要的地方忘记使用大写字母或分号。252.14 语法点语法点v在C#代码中,通过控件的名称来引用控件的属性,格式是在控件名后加一个点,点后面是属性名,如下所示:label1.Textv方法的形式如下:privatevoid.v在花括号中放入指令。v消息对话框不是放置
11、到窗体上的,使用下面的代码显示一个消息对话框:MessageBox.Show(Sometextyouchoose);262.15 新的语言元素新的语言元素属性、方法和事件的介绍272.16 新的新的IDE工具工具v程序包含在工程中。vIDE创建文件夹以包含工程需要的文件。v可以移动窗体上的控件或调整它的大小。v工具箱包含一系列控件。v单击鼠标右键可允许用户选择控件的属性。v在设计时双击控件将创建事件处理方法。v一个解决方案可以包含多个工程。通常,在一个解决方案中只放入一个工程。vIDE能够格式化(缩排)代码。v当键入控件名之后,可设置IDE以列出属性。282.17 小结小结编程的部分任务是在窗
12、体上放置控件,并设置它们的初始属性。C#的IDE简化了此项任务,除了阅读它的使用方法之外,还需要练习使用IDE。29第第3章章 图形简介图形简介3.1 简介简介3.2 对象、方法、属性和类的类比对象、方法、属性和类的类比 3.3 第一次绘图第一次绘图 3.4 创建程序创建程序 3.5 图形坐标系统图形坐标系统 3.6 解释程序解释程序 3.7 绘图方法绘图方法 3.8 颜色颜色303.9 顺序概念和语句顺序概念和语句 3.10 使用注释来添加含义使用注释来添加含义 3.11 编程原则编程原则 3.12 编程陷阱编程陷阱 3.13 语法要点语法要点 3.14 新的语言元素新的语言元素 3.15
13、新的新的IDE工具工具 3.16 小结小结313.1 简介简介计算机图形:既可以是由计算机生成的好莱坞影片,也可以是一个复杂的视频游戏,一个虚拟的现实环境,显示器上一个图形样式的静态图像,或一个由线条构建的简单图像。323.2 对象、方法、属性和类的类比对象、方法、属性和类的类比在C#中,new用来为程序员提供将要使用的新建对象。使用方法在术语上称为“调用”方法。除了方法,对象还具有属性。不能调用属性。333.3 第一次绘图第一次绘图现在创建一个单击按钮时在图片框中显示两个矩形的程序。下面是代码清单:privatevoidbutton1_Click(objectsender,System.Ev
14、entArgse)Graphicspaper;paper=pictureBox1.CreateGraphics();Penpen=newPen(Color.Black);paper.DrawRectangle(pen,10,10,100,50);paper.DrawRectangle(pen,10,75,100,100);343.4 创建程序创建程序基本步骤如下:v进入C#IDE。v创建一个新的WindowsApplication工程。v按上面的方法设置工程选项。v在窗体上添加一个按钮和一个图片框。v单击图片框,将它的Size属性改为150,200。v将图片框的BackColor属性改为合适的
15、颜色。v如果需要,可以改变窗体标题的文字。v双击按钮并插入绘图指令。353.5 图形坐标系统图形坐标系统C#图形是基于像素的。像素是屏幕上的小点,可以用来设置特定的颜色。每个像素都由从零开始的一对数字(坐标)来标识:v水平位置,在C#文档中称为x。该值从左向右递增。v垂直位置,经常称为y,该值从上向下递减。363.6 解释程序解释程序这里只解释这几行代码。Graphicspaper;paper=pictureBox1.CreateGraphics();Penpen=newPen(Color.Black);v第1行选择绘图区的名称。v第2行将绘图区链接到在窗体上添加的图片框。v第3行为画笔命名。
16、373.7 绘图方法绘图方法与绘制矩形一样,C#还提供了绘制一系列形状的工具。例如:v线条。v椭圆(即卵形)也包括圆形。v实心矩形和椭圆。v来自文件的图像。383.8 颜色颜色在C#中,大约有150种命名的颜色。下面列举一些主要的颜色和一些罕用的颜色:vBlackVioletBluevIndigoGreenYellowvOrangeRedGrayvPurpleWhiteFirebrickvLemonChiffonMaroonOliveDrab393.9 顺序概念和语句顺序概念和语句当程序中有很多语句时,它们按从屏幕的顶部到底部的顺序来执行。通常,C#程序由一系列的语句构成。语句有很多种类型,比
17、如方法调用或赋值语句。有些语句只占一行,但其他(比如if和while,不久就会看到)语句需要涵盖数行。403.10 使用注释添加含义使用注释添加含义在C#中,可以为指令添加注释(一种注解),方法是使用/或使用/*.*/。最简单的方法是在注释前使用/,注释可以包含任何内容,没有特定的规则。413.11 编程规则编程规则vC#具有大量的可调用方法。v传递给图形方法的参数的作用是控制绘制的形状。423.12 编程陷阱编程陷阱注意标点、拼写和方法名的大小写。逗号和括号必须像示例程序中的那样精确。433.13 语法要点语法要点每个方法中的参数的顺序和类型必须正确。443.14 新的语言元素新的语言元素v
18、()用来括起参数。v在声明项时类名称的使用。v创建新对象时new的使用。v调用类的方法时“.”符号的使用。v在注释前/的使用,以及用来括起注释的/*和*/的使用。v结束语句的“;”的使用。453.15 新的新的IDE工具工具没有新的IDE工具。463.16 小结小结v语句必须遵守一定的顺序,从上到上执行。vC#具有一组“绘图”方法,可以调用它们来显示图形。v图形定位基于像素坐标。v参数值可以传递给方法。47第第4章章 变量和计算变量和计算4.1 简介简介4.2 int的本质的本质4.3 double的本质的本质4.4 声明变量声明变量4.5 赋值语句赋值语句4.6 计算和运算符计算和运算符48
19、4.7 算术运算符算术运算符4.8 运算符运算符4.9 使用使用+运算符连接字符串运算符连接字符串4.10 字符串和数字之间的转换字符串和数字之间的转换 4.11 文本框和标签文本框和标签 4.12 数字之间的转换数字之间的转换 返回目录494.13 表达式的作用表达式的作用 4.14 编程原则编程原则 4.15 编程陷阱编程陷阱 4.16 语法要点语法要点 4.17 新的语言元素新的语言元素 4.18 新增的新增的IDE工具工具 4.19 小结小结504.1 简介简介这里将介绍两种基本的数值类型:v整数,数学中称为整数,C#中称为int类型。v“小数点”数,数学中称为实数,C#中称为doub
20、le。选择int或double应该视具体问题而定。514.2 int的本质的本质在C#中使用int时,可能范围是:-2,147,483,648+2,147,483,647,或大约-2,000,000,000+2,000,000,000之间的一个整数。所有的int计算都是精确的,也就是说,数字中的全部信息都被正确地保留。返回目录524.3 double 的本质的本质在C#中使用double数字时,它的值可以位于-1.79103081.7910308之间。double具有如此大的范围和精确数字,应付日常数量的计算其精确度是绰绰有余了。534.4 声明变量声明变量在C#中,这些名称:v必须以字母开头
21、(AZ或az)。v可包含任意字母或数字(数字为09)。v可包含下划线“_”。v最多255个字符。注意,C#是区分大小写的。544.5 赋值语句赋值语句变量一旦声明,就可以通过赋值语句将新值放入它们之中,如下所示:length=20;注意:v数据是从的右边到左边移动。v无论length原先是什么值,现在它被20“重写”。变量只能有一个值,即当前值。554.6 计算和运算符计算和运算符C#使用运算符+和-执行递增和递减(减1)。它们最频繁的使用是在循环中(第8章)。下面是+运算符的一种用法:n=3;n+;/n的当前值是4=的要点是它不同于代数意义上的“等于”。不妨将它看作“变为”或“得到”的意思。
22、564.7 算术运算符算术运算符运算符含义*乘/除%取模+加-减574.8%运算符运算符%(取模)运算符经常与整数除法一起使用,用来提供余数部分。%最常用于int类型,但它同样可以用于double类型。返回目录584.9 使用使用+运算符连接字符串运算符连接字符串inti=2,j=3;strings,note=Answeris:;s=note+i+j;s的值是多少?有两种可能性:答案是:23,两个+运算符均作用于字符串。答案是:5,第二个+使两个数字相加。事实上,将发生第一种情况。C#工作的顺序是从左到右。第一个+生成字符串“Answeris:2”。然后第二个+将3连入结尾。不过,如果使用:s
23、=note+(i+j);则先计算2+3,得到5。最后才发生字符串连接。返回目录594.10 字符串和数字之间的转换字符串和数字之间的转换使用ToString方法转换数字变量或算式,例如:strings1,s2;intnum=44;doubled=1.234;s1=Convert.ToString(num);/s1值为44s2=Convert.ToString(d);/s2值为1.234上面的ToString方法返回一个字符串。可以通过将此字符串存储在一个变量中或以其他方式来使用它。返回目录604.11 文本框和标签文本框和标签文本框可从工具箱中选择并拖放到窗体上。文本框具有非常多的属性,但最主
24、要的属性是Text,供用户键入字符串。标签将为用户显示一些帮助信息,通常通过属性窗口在设计时设置标签的属性。返回目录614.12 数字之间的转换数字之间的转换从一种类型的数值转换为另一种类型最常见的情况是将一个int转换为一个double,以及将一个double转换为一个int。返回目录624.13 表达式的作用表达式的作用C#语言中的表达式类似于数学运算中的表达式,是操作符、操作对象和标点符号等连接而成的式子。操作符是用来定义类实例中表达式操作符的。表达式是指定计算的操作符操作数序列。返回目录634.14 编程规则编程规则v变量具有名称,该名称由程序员选择。v变量具有类型,该类型由程序员选择
25、。v一个变量储存一个值。v变量的值可以通过赋值语句来改变。返回目录644.15 编程陷阱编程陷阱v注意变量名的拼写。v在刚开始的时候很难标注编译错误。v括号必须成对。v在标签和文本框的文本属性中使用数字时,记住要使用字符串转换工具。v在将几个项目相乘时,必须在它们之间加上*号。返回目录654.16 语法要点语法要点v通过声明变量的类及其名称来声明变量。v最实用的类型是int、double和string。v主要的算术运算符是*、/、%、+和-。v+运算符用来连接字符串。v+和-运算符用来完成递增和递减操作。v使用Convert.ToString方法将数字转换为字符串。v使用Convert.ToI
26、nt32和Convert.ToDouble方法将字符串转换为数字。v在一个double项之前加上(int),可将它转换为一个整数。v在一个int项之前加上(double),可将它转换为一个双精度值。返回目录664.17 新的语言元素新的语言元素vintdoublestring。v运算符+、-、*、/、%。v用于递增的+和递减的-。v用于赋值的。v强制转换:Convert类、(double)和(int)强制转换。返回目录674.18 新增的新增的IDE工具工具v具有Text属性的TextBox和Label控件。v控件的重命名。返回目录684.19 小结小结v变量用来保存值。它们直到显式改变之前一
27、直保持原值。v运算符对值进行运算。v表达式是能生成一个值的算式。它可用于多种情况中,包括用在赋值的右边,或作为方法调用的参数。返回目录69第第5章章 方法和参数方法和参数5.1 简介简介 5.2 编写自己的方法编写自己的方法5.3 第一个方法第一个方法 5.4 调用方法调用方法 5.5 传递参数传递参数5.6 形参和实参形参和实参705.7 三角形方法三角形方法5.8 局部变量局部变量5.9 命名冲突命名冲突5.10 事件处理方法事件处理方法5.11 return和结果和结果5.12 构建在方法上构建在方法上715.13 按引用传递参数按引用传递参数5.14 out和和ref参数参数 5.15
28、 out的例子的例子 5.16 ref的例子的例子 5.17 一个使用一个使用ref的交换方法的交换方法 5.18 this和对象和对象 5.19 重载重载 725.20 将对象传递给方法将对象传递给方法 5.21 编程原则编程原则5.22 编程陷阱编程陷阱 5.23 语法要点语法要点5.24 新的语言元素新的语言元素5.25 新的新的 IDE工具工具5.26 小结小结735.1 简介简介大型程序可能很复杂,这会导致它们难以理解和调试。减少复杂性最重要的技巧是将程序分成独立的段。而且,如果该段有名称,仅仅通过使用它的名称就可以调用或激活它。在某种程度上,它使用户能够从更高的层次考虑问题。在C#
29、中,这样的段称为方法。745.2 编写自己的方法编写自己的方法WorldwideCardboardBox公司有一个徽标(logo),它由相互包含的3个正方形组成。以下是在(10,20)和(100,100)两处绘出两个相同徽标的代码:/在左上角绘制徽标paper.DrawRectang(10,20,60,60);paper.DrawRectang(10,20,40,40);paper.DrawRectang(10,20,20,20);/在右下角绘制徽标paper.DrawRectang(100,100,60,60);paper.DrawRectang(100,100,40,40);paper.D
30、rawRectang(100,100,20,20);注意,正方形的大小是20、40和60像素,它们的左上角都处于同一点。755.3 第一个方法第一个方法以下是一个名为LogoMethod的完整程序。它告诉用户如何创建和使用方法,privatevoidbutton1_Click(objectsender,System.EventArgse)Graphicspaper;paper=pictureBox1.CreateGraphics();PenmyPen=newPen(Color.Black);DrawLogo(paper,myPen,10,20);DrawLogo(paper,myPen,100
31、,100);privatevoidDrawLogo(GraphicsdrawingArea,PenpenToUse,intxPos,intyPos)drawingArea.DrawRectangangle(penToUse,xPos,yPos,60,60);drawingArea.DrawRectangangle(penToUse,xPos,yPos,40,40);drawingArea.DrawRectangangle(penToUse,xPos,yPos,20,20);765.4 调用方法调用方法在C#中,通过给出方法的名称和括号中的参数列表来调用private方法。在上面的程序中,第一个
32、调用是:DrawLogo(paper,myPen,10,20);该语句有两个效果:v参数值自动传递给方法。v程序跳到方法的主体部分同时执行这部分语句。775.5 传递参数传递参数理解参数如何传送给方法是很重要的。传递按照从左到右的顺序发生。调用必须提供参数的正确数值和类型。在C#中将数据项传递给方法共有两种途径:v值传递v调用传递785.6 形参和实参形参和实参在许多语言中,调用者提供的是“实参”(actualparameters),而方法声明中使用的是“形参”(formalparameters)。795.7 三角形方法三角形方法为了介绍方法的更多特征,将创建一个更有用的方法,称之为DrawT
33、riangle。以下是关于DrawTriangle方法编码的几个要点:v将它命名为DrawTriangle,但这完全取决于用户。也可以选择Triangle甚至DrawThing,但DrawTriangle符合库方法的名称。v形参drawingArea、penToUse、xPlace、yPlace、width和height的名称也是由用户选择的。v参数的顺序也由用户控制。如果愿意,也可以对方法重新编码,以便在宽度之前要求高度。(把宽度放在前面是因为很多C#的库方法都使用这种顺序。)返回目录805.8 局部变量局部变量局部变量的作用是协助方法的工作,而不管方法做什么。局部变量有一个有限的作用域,受
34、限于自己的方法。它们的存在是临时的在方法调用时创建,在退出时销毁。815.9 命名冲突命名冲突在C#中,方法的创建者可以自由地为局部变量和参数选择合适的名称但是如果所选的名称与其他变量有冲突时会发生什么呢?对于下面的代码:privatevoidMethodOne(intx,inty)intz=0;/代码.privatevoidMethodTwo(intz,intx)intw=1;/代码.假定该方法由两个人编写。MethodOne有x、y作为参数,同时声明了一个整数z。这3个变量都是MethodOne的局部变量。在MethodTwo中,该程序员运用了为局部变量命名的自由权力并选择了z、x和w。x
35、的(和z的)命名冲突没有出现什么问题,因为C#将MethodOne的x看作与MethodTwo的x不同。825.10 事件和处理方法事件和处理方法C#系统会将所有事件(比如按钮单击、鼠标单击等事件)发送给它们相应的事件方法。通常,不需要自己调用这些方法。835.11 return和结果和结果为了从方法返回一个值,使用return语句:returnexpression;该表达式可能是数值、变量或算式(甚至是方法调用),但是它的类型必须正确,与方法在声明中指定的类型一样。845.12 构建在方法上构建在方法上使用来自C#库的DrawRectang方法和自己编写的DrawTriangle方法。855
36、.13 按引用传递参数按引用传递参数传递参数方法的要点:v传递数据的副本(通过值)更为安全。v传递数据的所在之处(按引用传递)速度很快。如果想要传递变量给方法,可有两种选择:v传递当前值的一个副本。v传递地址。C#允许两种类型的引用:使用关键字ref或者out。865.14 out和和ref参数参数关键字out和ref允许程序员精确访问并改变传递到方法中的调用参数。有两种可能性:v调用方法通过某种方式修改现有的值。在术语上叫做“更新”。方法需要访问参数的当前值。在这种情况下,使用关键字ref。v调用方法将一个全新的值放到参数中,而不需要访问它的当前值。在这种情况下,使用关键字out。875.1
37、5 out的例子的例子privatevoidbutton1_Click(objectsender,System.EventArgse)intoriginalCents,wholeDollars=0,centsLeft=0;originalCents=Convert.ToInt32(textBox1.Text);DollarsAndCents(originalCents,outwholeDollars,outcentsLeft);dollarsLabel.Text=Convert.ToString(wholeDollars);centsLabel.Text=Convert.ToString(ce
38、ntsLeft);privatevoidDollarsAndCents(inttotalCents,outintdollars,outintcentsLeft)dollars=totalCents/100;centsLeft=totalCents%100;返回目录885.16 ref的例子的例子private void button1_Click(object sender,System.EventArgs e)int pieWidth=8,pieLength=6;IncreaseSize(ref pieWidth,ref pieLength);IncreaseSize(ref pieWidt
39、h,ref pieLength);IncreaseSize(ref pieWidth,ref pieLength);private void IncreaseSize(ref int width,ref int length)int area;width=width+2;length=length+2;area=width*length;MessageBox.Show(Pie size:+Convert.ToString(width)+by +Convert.ToString(length)+.Area is +Convert.ToString(area);895.17 一个使用一个使用ref
40、的交换方法的交换方法编写方法交换两个变量的值是使用参数的一个典型例子。首先给出没有使用方法的程序代码:aCopy=a;a=b;b=aCopy;注意如果使用:a=b;b=a;则最后a和b都被设置为b的原始值。因此,希望将只能作用于变量a和b的代码捆绑成一个方法。该方法共有两个参数,而且需要访问它们的原始值。返回目录905.18 this和对象和对象当一个对象调用在它自己内部所声明的方法时,可以简单地使用:Swap(refa,refb);或者可以使用完整的对象表示法,例如:this.Swap(refa,refb);this是一个C#关键字,代表当前正在运行的对象。返回目录915.19 重载重载类中
41、两个以上的方法取的名字相同,只要使用的参数类型或者参数个数不同,编译器便知道在何种情况下应该调用哪个方法,这就叫做方法的重载。返回目录925.20 将对象传递给方法将对象传递给方法在程序中主要介绍了传递数值,但有时也需要传递更为复杂的对象,比如画笔和图片框。下面有一个例子,将传递两个将要相加的数值,同时传递一个用来显示结果的标签:privatevoidShowSum(Labeldisplay,inta,intb)display.Text=Convert.ToString(a+b);可以像下面这样调用方法:ShowSum(label1,3,4);ShowSum(label2,5,456);通过值
42、传递,对象允许操作它的属性并调用它的方法。返回目录935.21 编程原则编程原则v方法是有名称的代码段。通过使用方法的名称调用方法。v可以编写void方法,或者返回单个结果的方法。v可以传递参数给方法,通过值或调用(使用ref或out)v如果方法只需要返回一个值,则考虑使用return而不是out或ref。v如果能够在代码中识别出一项定义明确的任务,请考虑将它分离出来并且将它编写为一个方法。返回目录945.22 编程陷阱编程陷阱v方法的标题必须包括参数类型。v方法调用不能包括类型名。v调用方法时,必须提供正确的参数个数和参数类型。v必须安排以某种方式利用返回值。v当一个方法指定它需要out或r
43、ef参数时,调用必须确保这一点。返回目录955.23 语法要点语法要点v方法的通用模式包括两种形式。即返回结果和不返回结果。v将方法作为表达式的一部分来调用。v方法体必须包括一条return语句,该语句说明值的正确类型。v方法没有参数时,在声明和调用时都必须使用空括号()。v形参列表由方法的编写者创建。每个参数都需要一个名称和一个类型。v实参列表由方法的调用者编写。返回目录965.24 新的语言元素新的语言元素v私有方法的声明。v由方法名称和参数组成的方法调用。v使用return从非void方法退出,同时传回一个值。v使用return从void方法退出。vout和ref的使用。v重载的使用。v
44、使用this表示当前对象。返回目录975.25 新的新的IDE工具工具本章未介绍新的IDE工具。返回目录985.26 小结小结v方法包含程序的子任务。v可以将参数传递给方法。v使用方法在术语上称为调用方法。v非void方法返回一个结果。返回目录99第第6章章 使用对象使用对象6.1 简介简介6.2 实例变量实例变量6.3 窗体构造函数窗体构造函数6.4 TrackBar类类6.5 using和命名空间和命名空间6.6 成员、方法和属性成员、方法和属性6.7 Random类类1006.8 Timer类类6.9 编程原则编程原则 6.10 编程陷阱编程陷阱6.11 语法要点语法要点6.12 新的语
45、言元素新的语言元素6.13 新的新的IDE工具工具6.14 小结小结1016.1 简介简介本章将分析C#库中类的使用。通常,对象在术语上称为控件或组件。这两个术语实际上是通用的,但C#使用“控件”表示可在窗体上进行操作的项目(比如按钮)。1026.2 实例变量实例变量程序员可以自由选择实例变量的名称。注意下面的代码是如何选择合适的局部变量名称的。publicclassForm1:System.Windows.Forms.Formprivateintn=8;privatevoidMyMethod()intn;n=3;/哪一个n?尽管这两个变量在MyMethod中都允许访问(在作用域中),但原则上
46、选择的是局部变量。实例变量(类级)n依然设置为8。返回目录1036.3 窗体构造函数窗体构造函数当C#系统运行程序时,它做的第一件事是调用窗体的构造函数。构造函数的作用是构建窗体并初始化它。(注意构造函数是在类的外部调用的,声明为public而不是private)。1046.4 TrackBar类类TrackBar是可以从工具箱中获得的GUI控件。它在本质上与字处理程序窗口边侧的滚动条类似,但TrackBar可以放置在窗体的任何位置上。返回目录1056.5 using和命名空间和命名空间为了使用一个类,必须确保它已经通过关键字using导入程序中。不过,这有两种可能,一些最常用的命名空间将被自
47、动导入到Windows应用程序中。这些命名空间是:vSystemvSystem.DrawingvSystem.CollectionsvSystem.ComponentModelvSystem.Windows.FormsvSystem.Data1066.6 成员、方法和属性成员、方法和属性类的成员是指它的属性和方法。属性包含的值表示类的实例的当前状态(比如标签中包含的文本),而方法是让实例完成某项任务,比如画一个圆。属性的使用方式与变量相似,可以在它们之中放入新值并访问它们的当前值。1076.7 Random类类Random类的实例需要显式声明与初始化。1086.8 Timer类类计时器的主要功
48、能:v计时器以固定的间隔产生嘀哒。每个嘀哒都是一个调用Tick方法的事件。vInterval属性可设置为一个整数值,代表以毫秒表示的两次嘀哒之间的时间。v使用Start和Stop方法启动或停止计时器。v在程序中可放入任意多个具有不同时间间隔的计时器。返回目录1096.9 编程原则编程原则除了利用现有组件,C#也可用来编写为其他人使用的GUI组件。在程序中集成这些组件很简单:通过一项菜单操作将它们添加到一个工程中。1106.10 编程陷阱编程陷阱如果声明了一个实例,但是没有使用new对它进行初始化,就会产生System.NullReferenceException类型的运行时错误。运行时错误(即
49、bug)比编译时错误更难解决;它们不容易发现,而且更严重,因为程序会停止执行。相信你一定遇见过此类错误!返回目录1116.11 语法要点语法要点v实例变量在方法外声明,如下所示:privateintyourVariable;privateRandommyVariable=newRandom();v实例变量在声明时就可以初始化,或者在方法内初始化。v使用与变量相似的方式操作属性:可得到和设置它们的值。1126.12 新的语言元素新的语言元素v私有实例变量。v使用new来初始化。v使用using导入命名空间。vTrackBar、Random和Timer类。1136.13 新的新的IDE工具工具组件
50、托盘提供那些无法在窗体上可视显示的控件。1146.14 小结小结C#系统中有大量可供使用的类,这也是理所应当的。除了工具箱中的控件类,还可以使用using以及适当的构造函数将它们集成到程序中。115第第7章章 选择选择7.1 简介简介7.2 if语句语句7.3 if.else7.4 比较运算符比较运算符7.5 与、或、非与、或、非7.6 嵌套的嵌套的if7.7 switch语句语句1167.8 布尔型变量布尔型变量7.9 编程原则编程原则7.10 编程陷阱编程陷阱7.11 语法要点语法要点7.12 新的语言元素新的语言元素7.13 小结小结1177.1 简介简介在程序中需要大量使用选择。计算机