《最新学习资料PPT课件.ppt》由会员分享,可在线阅读,更多相关《最新学习资料PPT课件.ppt(54页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、学习资料学习资料【学习概述】本章介绍C#软件的来历、特点和开发环境,讲述数据类型、表达式、程序的运行和调试方法等基础知识,让读者学会安装Visual Studio 2008开发平台,熟悉开发环境和程序调试技巧,以一个结构完整、内容简单的C#程序作为实训项目,使读者能够读懂程序,学会使用开发平台编辑、编译并运行调试程序。1.2 C#开发环境1.2.1 安装Visual Studio 2008图1.6 安装完成1.2 C#开发环境n n1.2.2 启动Visual Studio 2008 启动Visual Studio 2008一般有两种方法:一种是直接双击桌面上Visual Studio 200
2、8图标启动;另一种是单击“开始”“所有程序”“Microsoft Visual Studio 2008”“Microsoft Visual Studio 2008”进行启动。1起始页 首次启动Visual Studio 2008,首先会看到“选择默认环境设置”界面。选择“Visual C#开发设置”,单击按钮【启动Visual Studio】图1.9 起始页1.2 C#开发环境n n1.2.2 启动Visual Studio 2008 2创建新程序 如果要创建一个C#程序,可以单击“项目”部分中的“新建项目”,或者选择“文件”“新建”“项目”,这将弹出如图1.10所示的对话框。在为项目选择名称
3、和位置后,在“新建项目”对话框中单击【确定】按钮。IDE(Integrated Development Environment,集成开发环境)的外观将发生改变,如图1.11所示。图1.10 新建项目窗体图1.11 创建新项目后的Visual Studio 2008环境1.2 C#开发环境n n1.2.2 启动Visual Studio 20083Visual Studio 2008窗口 Visual Studio 2008向用户提供了众多窗口,本书只简单介绍开发C#应用程序所必需的窗口。一般初次启动时,很多窗口都是在界面上可见的,如若是呈隐藏状态,可从“视窗”菜单中选择所需窗口进行访问。(1)
4、解决方案资源管理器(2)工具箱(3)属性窗口(4)帮助菜单 1.3 数据类型 C#数据类型主要有值类型和引用类型两大类。值类型包括简单类型、结构类型和枚举类型;引用类型包括类类型、数组类型、接口类型和委托类型。引用类型所存储的实际数据是当前引用对象的地址。对于引用类型,有可能两个变量引用相同的对象,因而可能出现对一个变量的操作影响到其它变量的情况。这里仅介绍值类型中的简单类型和结构类型,引用类型中的类类型和数组类型,其他数据类型在涉及到的项目中讲解。1.3 数据类型1.3.1 1.3.1 简单类型简单类型n n简单类型包括整数类型、浮点类型、小数类型、字符类型简单类型包括整数类型、浮点类型、小
5、数类型、字符类型和布尔类型等。受计算机存储单元数量的限制,任何一种和布尔类型等。受计算机存储单元数量的限制,任何一种数据类型都有一定的取值范围和精度。数据类型都有一定的取值范围和精度。n n1 1整数类型整数类型n n2 2浮点类型浮点类型n n3 3小数类型小数类型n n4 4字符类型字符类型1.3 数据类型n n表表1.1 C#1.1 C#常用的转义符常用的转义符转义转义符符代表字符名称代表字符名称转义转义符符代表字符名称代表字符名称 单单引号引号f f换页换页”双引号双引号nn换换行行 反斜杠反斜杠r r换换行并移至最前行并移至最前00空字符(空字符(NullNull)t t水平方向的水
6、平方向的TabTaba a发发出一个警告出一个警告vv垂直方向的垂直方向的TabTabbb倒退一个字符倒退一个字符1.3 数据类型n n5布尔类型n n布尔类型数据用于表示逻辑真或逻辑假,其类型标识符是bool。1.3 数据类型n n1.3.2 结构类型n n结构类型是把各种不同类型的数据组合在一起形成的组合类型,是用户可以自定义的数据类型。例如一个学生的个人记录可能包括:学号、姓名、性别、年龄、电话,这些信息的类型不同,可以使用结构类型存储。1.3 数据类型n n1结构的声明n n结构类型需要先声明后使用,声明结构类型要使用struct关键字,语法格式如下:n nstruct 标识符n nn
7、 n/结构成员定义n n1.3 数据类型n n2结构成员的访问n n结构成员可分为两类:一类是实例成员,另一类是静态成员。1.3 数据类型n n【例【例1-21-2】定义一个结构类型用于存放平面坐标的】定义一个结构类型用于存放平面坐标的X X轴和轴和Y Y轴数据,并通过访问结构成员显示该坐标。程序代码如下:轴数据,并通过访问结构成员显示该坐标。程序代码如下:n npublic struct CoOrdspublic struct CoOrdsn n n n public int x,y;public int x,y;n n public CoOrds(int p1,int p2)public
8、CoOrds(int p1,int p2)n n n n x=p1;x=p1;n n y=p2;y=p2;n n n n n nclass TestCoOrdsNoNewclass TestCoOrdsNoNewn n n n static void Main()static void Main()n n n n CoOrds coords1;CoOrds coords1;n n coords1.x=10;coords1.x=10;n n coords1.y=20;coords1.y=20;n n System.Console.Write(CoOrds 1:);System.Console.W
9、rite(CoOrds 1:);n n System.Console.WriteLine(x=0,y=1,coords1.x,coords1.y);System.Console.WriteLine(x=0,y=1,coords1.x,coords1.y);n n n n n n输出为:输出为:n nCoOrds 1:x=10,y=20CoOrds 1:x=10,y=201.3 数据类型n n1.3.3 类类型n n类类型是C#中功能最为强大的数据类型。像结构一样,类也定义数据的类型和行为。1.3 数据类型n n1类的声明n n类类型的声明与结构类型的声明很类似,不同的是类的声明要使用class
10、关键字,其格式如下:n n类修饰符 class 类名n nn n类的成员;n n1.3 数据类型n n2类成员的访问n n在C#中,按照类的成员是否为函数将其分为两大类,一种以函数形式出现,称为成员函数,另一种不以函数形式体现,称为成员变量。1.3 数据类型n n【例【例1-31-3】类成员的声明与访问。】类成员的声明与访问。n nusing System;using System;n nclass Kidclass Kidn n n n private int age;private int age;n n private string name;private string name;n
11、n public Kid()public Kid()n n n n name=N/A;name=N/A;n n n n public Kid(string name,int age)public Kid(string name,int age)n n n n this.name=name;this.name=name;n n this.age=age;this.age=age;n n n n public void PrintKid()public void PrintKid()n n n n Console.WriteLine(0,1 years old.,Console.WriteLine
12、(0,1 years old.,name,age);name,age);n n n n n nclass MainClassclass MainClassn n n n static void Main()static void Main()n n n n Kid kid1=new Kid(Craig,11);Kid kid1=new Kid(Craig,11);n n Kid kid2=new Kid(Sally,10);Kid kid2=new Kid(Sally,10);n n Kid kid3=new Kid();Kid kid3=new Kid();n n Console.Write
13、(Kid#1:);Console.Write(Kid#1:);n n kid1.PrintKid();kid1.PrintKid();n n Console.Write(Kid#2:);Console.Write(Kid#2:);n n kid2.PrintKid();kid2.PrintKid();n n Console.Write(Kid#3:);Console.Write(Kid#3:);n n kid3.PrintKid();kid3.PrintKid();n n n n n n程序结果:程序结果:n nKid#1Kid#1:Craig,11 years old.Craig,11 ye
14、ars old.n nKid#2Kid#2:Sally,10 years old.Sally,10 years old.n nKid#3Kid#3:N/A,0 years old.N/A,0 years old.n n在此例中声明了两个类,一个是在此例中声明了两个类,一个是KidKid类,包含两个私类,包含两个私有字段(有字段(namename和和ageage)和两个公共方法。第二个类)和两个公共方法。第二个类MainClassMainClass用来包含用来包含MainMain。1.3 数据类型n n1.3.4 数组类型n n数组类型是把一些类型相同的数据组合在一起形成的组合类型。1.3 数据
15、类型n n1数组的定义n n数组在使用前必须先定义。定义一维数组的格式如下:n n数组类型 数组名:1.3 数据类型n n2数组的初始化n n在定义数组后,必须对其进行初始化才能使用。初始化数组有两种方法:动态初始化和静态初始化。1.3 数据类型n n3数组元素的访问n n定义一个数组,并对其进行初始化后,就可以访问数组中的元素了。在C#中是通过数组名和下标值来访问数组元素的。1.3 数据类型n n【例【例1-41-4】定义、初始化和访问数组。】定义、初始化和访问数组。n nusing System;using System;n nclass DeclareArraysSampleclass
16、DeclareArraysSamplen n n n public static void Main()public static void Main()n n n n /一维数组一维数组n n int numbers=new int5;int numbers=new int5;n n /多维数组多维数组n n string,names=new string5,4;string,names=new string5,4;n n /数组的数组(交错数组)数组的数组(交错数组)n n byte scores=new byte5;byte scores=new byte5;n n /创建交错数组创建交
17、错数组n n for(int i=0;i scores.Length;i+)for(int i=0;i scores.Length;i+)n n n n scoresi=new bytei+3;scoresi=new bytei+3;n n n n/打印每行的长度打印每行的长度n n for(int i=0;i scores.Length;i+)for(int i=0;i scores.Length;i+)n n n n Console.WriteLine(Length of row 0 is Console.WriteLine(Length of row 0 is 1,i,scoresi.L
18、ength);1,i,scoresi.Length);n n n n n n n n程序的结果:程序的结果:n nLength of row 4 is 8Length of row 0 is 4Length of row 4 is 8Length of row 0 is 4n nLength of row 1 is 5Length of row 1 is 5n nLength of row 2 is 6Length of row 2 is 6n nLength of row 3 is 7Length of row 3 is 71.4 表达式n n表达式是由变量、常数和运算符组成的算式,是各种程
19、序设计语言中最基本的数据运算或数据处理过程。单个常数或变量是表达式的特殊情况。1.4 表达式n n1.4.1 标识符n n标识符是一串字符,在程序中用来代表一个名字,定义一个变量、一个类或生成一个对象时,其名字就是标识符。1.4 表达式n n1.4.2 常量n n常量是在程序运行过程中其值不变的量。通过关键字const来声明常量,格式如下:n nconst 类型标识符 常量名=表达式1.4 表达式n n1.4.3 变量n n变量是程序运行过程中用于存放数据的存储单元,其值在程序的运行过程中可以改变。C#规定,任何变量必须先定义后使用。n n1变量的定义n n一次可以定义一个或多个同类型的变量,
20、其格式如下:n n类型标识符 变量名1,变量名2,1.4 表达式n n2变量的赋值n n变量本身只是一个能保存某种类型具体数据的内存单元(这里所说的“内存单元”不一定以字节为单位),对于程序而言,可以使用变量名来访问这个具体的内存单元。变量的赋值,就是将数据保存到变量内存单元的过程。在C#中,给一个变量值的格式如下:n n变量名=表达式;1.4 表达式n n1.4.4 运算符n n运算符是表示各种不同运算的符号。1.5 C#程序的运行与调试n n1.5.1 第一个C#程序n n使用Visual Studio 2008提供的项目模板创建一个控制台应用程序,这个程序在Windows窗口显示“我的第
21、一个程序”。1.5 C#程序的运行与调试n n1.5.2 程序的结构n n一个简单的C#程序的基本结构为:命名空间、类、Main()、注释方法等。下边就结合上例中的程序来分析C#应用程序的结构。1.5 C#程序的运行与调试n n1命名空间n n在上节的程序中,第一条语句using System语句表示导入System命名空间。Console.WriteLine(我的第一个程序)语句中的Console是System命名空间所包含的系统类库中定义好的一个类,代表系统控制台,即字符界面的输入和输出。1.5 C#程序的运行与调试n n2类n nC#要求其程序中的每一个元素都要属于一个类。上节程序的第二
22、行class Welcome声明了一个类,类的名字叫Welcome,这个程序的功能就是依靠它来完成的。1.5 C#程序的运行与调试n n3Main()方法n nC#程序入口从下面的代码开始:n nstatic void Main()1.5 C#程序的运行与调试n n4注释n n程序编写过程中常常要对程序中比较重要或需要注意的地方做些说明,但这些说明又不参与程序的执行。通常是采用注释的方法将这些书名写在程序中。1.5 C#程序的运行与调试n n1.5.3 程序的调试n n设置和取消断点的方法如下:n n(1)单击某代码行左边的灰色区域,设置断点,再次单击则取消断点。n n(2)右击某代码行,在弹
23、出的菜单中,选择“断点”“插入断点”或者“删除断点”。n n(3)鼠标指向某代码行,单击键进行设置或取消断点。1.5 C#程序的运行与调试n n【例【例1-51-5】编写一个简单的】编写一个简单的windowswindows应用程序,实现简单的交互。应用程序,实现简单的交互。n n(1 1)新建)新建VC#VC#项目,选择模板中的项目,选择模板中的windowswindows应用程序。应用程序。n n(2 2)项目名称为)项目名称为“HeyGuy”“HeyGuy”。从工具箱中为窗体安放。从工具箱中为窗体安放ButtonButton控件和控件和textboxtextbox控件。并设置控件属性。控
24、件。并设置控件属性。n n(3 3)左键双击)左键双击“解决方案资源管理器解决方案资源管理器”中的中的“Program.cs”“Program.cs”,修改代码为:,修改代码为:n nstatic void Main()static void Main()n n n nMessageBox.Show(MessageBox.Show(请输入你的姓名请输入你的姓名););n nApplication.EnableVisualStyles();Application.EnableVisualStyles();n nApplication.SetCompatibleTextRenderingDefau
25、lt(false);Application.SetCompatibleTextRenderingDefault(false);n nApplication.Run(new Form1();Application.Run(new Form1();n n n n(4 4)双击【确定】按钮,为其添加事件处理程序,添加的程序代码如下:)双击【确定】按钮,为其添加事件处理程序,添加的程序代码如下:n nprivate void button1_Click(object sender,System.EventArgs e)private void button1_Click(object sender,S
26、ystem.EventArgs e)n n n nstring strName;string strName;n nstrName=textBox1.Text;strName=textBox1.Text;n nMessageBox.Show(Hi+strName+!);MessageBox.Show(Hi+strName+!);n n n n如果有错误,则会弹出一个如图如果有错误,则会弹出一个如图1.171.17所示的提示框。所示的提示框。n n无论选择无论选择“是是”还是还是“否否”,都会在窗口界面的下部出现一个任务列表,显示所有的输出错误,通过双击任务可以对其,都会在窗口界面的下部出现一个
27、任务列表,显示所有的输出错误,通过双击任务可以对其进行修改,选择后这些错误会自动隐藏在下部,通过单击表头可以打开。进行修改,选择后这些错误会自动隐藏在下部,通过单击表头可以打开。n n利用断点调试程序时,运行一次软件后,会自动停止在断点处,接着参用上述方法继续执行,反复多次直到修改完利用断点调试程序时,运行一次软件后,会自动停止在断点处,接着参用上述方法继续执行,反复多次直到修改完所有错误为止。所有错误为止。1.5 C#程序的运行与调试图1.17 提示框1.5 C#程序的运行与调试n n在【例在【例1-51-5】中,首先找到存在错误的代码行】中,首先找到存在错误的代码行strName=text
28、Box1.Text;strName=textBox1.Text;设置该代码行为断点,如图设置该代码行为断点,如图1.181.18所示。所示。图1.18 设置断点1.5 C#程序的运行与调试n n设置有断点的行代码显示为红色,当鼠标移动到红色圆点位置时,提设置有断点的行代码显示为红色,当鼠标移动到红色圆点位置时,提示该断点代码行的位置信息。运行程序时,运行到设置断点的代码行,示该断点代码行的位置信息。运行程序时,运行到设置断点的代码行,程序中断,代码行显示为黄色,红色圆点上会有一个箭头,如图程序中断,代码行显示为黄色,红色圆点上会有一个箭头,如图1.191.19所示。所示。图1.19 程序运行到
29、断点1.5 C#程序的运行与调试n n继续使用以上方式运行程序,完成程序的调试。在【例继续使用以上方式运行程序,完成程序的调试。在【例1-51-5】中,如果代码误输入为:】中,如果代码误输入为:n nprivate void button1_Click(object sender,System.EventArgs e)private void button1_Click(object sender,System.EventArgs e)n n n nstring strName;string strName;n nstrName=textBox.Text;strName=textBox.Tex
30、t;n nMessageBox.Show(Hi+strName+!);MessageBox.Show(Hi+strName+!);n n n n运行程序,弹出如图运行程序,弹出如图1.201.20所示错误提示。所示错误提示。图1.20 错误提示1.5 C#程序的运行与调试n n错误显示已成功生成过,选择【是】,直接调用错误显示已成功生成过,选择【是】,直接调用上次成功的生成;选择【否】,跳出运行,错误上次成功的生成;选择【否】,跳出运行,错误列表中显示的错误信息如图列表中显示的错误信息如图1.211.21所示。所示。图1.21 错误信息1.6 实训:调试C#程序n n【例【例1-61-6】编写
31、一个简单的】编写一个简单的windowswindows应用程序,调试并运行程序。应用程序,调试并运行程序。n n(1 1)新建)新建VC#VC#项目,选择模板中的项目,选择模板中的windowswindows应用程序。应用程序。n n(2 2)项目名称为)项目名称为“Test1”“Test1”。在。在“工具箱工具箱”的的“组件组件”中选择中选择“Timer”“Timer”控件。控件。n n(3 3)双击)双击Form1Form1窗体,为其添加事件处理程序,程序如下:窗体,为其添加事件处理程序,程序如下:n nprivate void Form1_Load(object sender,Event
32、Args e)private void Form1_Load(object sender,EventArgs e)n n n nthis.timer1.Enabled=true;this.timer1.Enabled=true;n nthis.Opacity=0;this.Opacity=0;n n n n(4 4)双击)双击Timer1Timer1窗体,为其添加事件处理程序,程序如下:窗体,为其添加事件处理程序,程序如下:n nprivate void timer1_Tick(object sender,EventArgs e)private void timer1_Tick(object
33、sender,EventArgs e)n n n nif(this.Opacity 1)if(this.Opacity 1)n n n n this.Opacity=this.Opacity+0.05;this.Opacity=this.Opacity+0.05;n n n n else else n n n n this.timer1.Enabled=false;this.timer1.Enabled=false;n n n n 1.6 实训:调试C#程序n n(5 5)调试并运行程序。)调试并运行程序。n n(6 6)运行结果是一个渐显的窗体。其中运行过程中的一个画面如图)运行结果是一个渐
34、显的窗体。其中运行过程中的一个画面如图1.221.22所示。所示。图1.22 渐显的窗体1.6 实训:调试C#程序n n【例【例1-71-7】编写一个】编写一个windowswindows应用程序,调试并运行程序,应用程序,调试并运行程序,找出错误。找出错误。n n(1 1)新建)新建VC#VC#项目,选择模板中的项目,选择模板中的windowswindows应用程序。应用程序。n n(2 2)项目名称为)项目名称为“Test2”“Test2”。添加三个。添加三个TextBoxTextBox、两个、两个LabelLabel和一个和一个ButtonButton控件,如图控件,如图1.231.23
35、所示。所示。图1.23 桌面布局1.6 实训:调试C#程序n n(3 3)双击)双击Button1Button1窗体,为其添加事件处理程序,程序如下:窗体,为其添加事件处理程序,程序如下:n nprivate void button1_Click(object sender,EventArgs e)private void button1_Click(object sender,EventArgs e)n n n n Double a;Double a;n n a=Convert.ToDouble(textBox1.Text)/Convert.ToDouble(textBox2.Text);a
36、=Convert.ToDouble(textBox1.Text)/Convert.ToDouble(textBox2.Text);n n textBox.Text=Convert.ToString(a);textBox.Text=Convert.ToString(a);n n n n(4 4)调试并运行程序。发现错误如图)调试并运行程序。发现错误如图1.241.24所示。所示。n n(5 5)修改错误并运行。)修改错误并运行。图1.24 显示的出错信息1.7 习题n n1 1填空填空n n(1 1)Visual Studio 2008Visual Studio 2008开发环境由开发环境由_和
37、和_构成。构成。n n(2 2)C#C#是一种由是一种由_和和_衍生出来的面向对象的编程语言。衍生出来的面向对象的编程语言。n n(3 3)C#C#的目的就是综合的目的就是综合Visual BasicVisual Basic的的_和和C+C+的的_。n n(4 4)通常采用设置)通常采用设置_来调试程序的。来调试程序的。n n2 2选择选择n n(1 1)类库是一个由)类库是一个由.NET Framework SDK.NET Framework SDK中包含的(中包含的()组成的库。)组成的库。n nA A类类 B B值类型值类型 C C接口接口 D D命名空间命名空间n n(2 2)公共语言
38、运行库()公共语言运行库(CLRCLR)是)是.NET Framework.NET Framework的基础,的基础,提供诸如(提供诸如()等核心服务。)等核心服务。n nA A内存管理内存管理 B B开发流程开发流程 C C线程管理线程管理 D D远程处理远程处理n n(3 3)解决方案资源管理器的功能是()解决方案资源管理器的功能是()n nA A编写源代码编写源代码 B B显示项目中的所有文件和项目设置显示项目中的所有文件和项目设置n nC C用于显示选定目标对象的属性用于显示选定目标对象的属性 D D用于显示程序在编译过程中产生的错误用于显示程序在编译过程中产生的错误n n(4 4)选出不属于值类型的是()选出不属于值类型的是()n nA Acharchar、intint和和float Bfloat B枚举类型枚举类型 C C引用类型引用类型 D D结构类型(结构类型(5 5)无符号整数类型有()无符号整数类型有()n nA Abyte Bbyte Bushort Cushort Cuint Duint Dulongulongn n3 3C#C#特点有哪些?特点有哪些?n n4 4注释方法有那些,需要注意什么?注释方法有那些,需要注意什么?n n5 5简述设置和取消断点的方法。简述设置和取消断点的方法。结束语结束语谢谢大家聆听!谢谢大家聆听!54