《第2章 C#程序设计入门.ppt》由会员分享,可在线阅读,更多相关《第2章 C#程序设计入门.ppt(55页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第2章 C#程序设计入门2010-9-10本章将介绍C#程序设计相关的基础知识。基础知识。包括C#程序基本程序基本程序、编译程序编译程序以及一些基本输入基本输入/输出操作输出操作等。2C#程序设计实用教程2.1 第一个控制台应用程序.NET可以实现多种应用,包括控制台应用程序、Windows Form程序以及Web应用。首先来实现第一个最简单的C#控制台应用程序Welcome。3C#程序设计实用教程2.1.1 创建程序下面将使用Visual Studio.NET提供的项目模板来创建一个控制台应用程序控制台应用程序(Console Application)。这个程序将在窗口中,显示“Welcom
2、e,C#!”的信息。(1 1)启动VS.NET。(2 2)要创建一个C#控制台应用程序,首先选择【文件】【新建】【项目】命令,打开【新建项目】对话框,如图2-1所示。4C#程序设计实用教程2.1.1 创建程序5C#程序设计实用教程2.1.1 创建程序(3 3)在该对话框中,从左边的“项目类型”列表框中选择“Visual C#”选项,然后在右边的“模板”列表框中选择“控制台应用程序控制台应用程序”选项。在本例中,项目名称为Welcome,项目文件保存在“E:C#”目录中,如图2-1所示。最后,单击“确定”按钮,关闭“新建项目”对话框,让Visual Studio.NET为用户自动生成代码。图2-
3、2给出了自动生成的代码。6C#程序设计实用教程2.1.1 创建程序7C#程序设计实用教程2.1.1 创建程序(4 4)查看“解决方案资源管理器”窗口,如图2-3所示。在文件“Program.cs”上单击右键,选择“重命名”,将其改名为“Welcome.cs”。8C#程序设计实用教程2.1.1 创建程序(5 5)查看主窗口,里面已有VS.NET自动生成的代码,如下所示。1.using System;2.using System.Collections.Generic;3.using System.Text;4.namespace Welcome5.6.class Welcome7.8.stati
4、c void Main(string args)9.10.11.12.9C#程序设计实用教程2.1.1 创建程序在第9 9行,将“static void Main(string args)”改为“static void Main()”。在第1011行中间,添加如下代码:Console.WriteLine(Welcome,C#!);10C#程序设计实用教程2.1.1 创建程序(6 6)使用快捷键“Ctrl+F5”,或者菜单操作:【调试】【开始执行】,启动程序后,结果如图2-4所示。11C#程序设计实用教程2.1.1 创建程序(7 7)查看工程文件。在目录“E:C#CH2”下,将会发现文件夹“We
5、lcome”,这是VS.NET为本工程所建立的工程文件夹工程文件夹。Welcome.sln:解决方案文件,后缀为“slnsln”,是solution缩写,双击可以打开本工程。Welcome.cs:工程代码文件,后缀为“cscs”为C Sharp的缩写。在子目录“binDebug”下,可以发现可执行文件“Ex02_1.exe”,双击可以执行。至此,第一个控制台应用程序就完成了。12C#程序设计实用教程2.1.2 编译和执行程序要编译编译一个C#应用程序,要从【生成】菜单中选择【生成解决方案】命令。这时,C#编译器将进行编译、链接程序,并最终生成可执行文件可执行文件。13C#程序设计实用教程2.1
6、.2 编译和执行程序当在编译过程中出现错误时,将出现如图2-5所示的【错误列表】窗口,并已经在其中列出编译过程中所遇到的每一条错误。用户可以通过双击【错误列表】窗口中的任务项直接跳转到对应的代码行。14C#程序设计实用教程2.1.2 编译和执行程序如果程序中没有错误,编译器将会生成可执行文件。在VisualStudio中,用户可以采用两种方式运行程序两种方式运行程序:一种是调试运行调试运行,另一种是不进行调试而直接运行不进行调试而直接运行。要调试程序,可以通过使用【调试】|【开始】命令或工具栏的调试按钮或者直接按下F5键;要直接运行程序,则使用【调试】|【开始执行】命令或Ctrl+F5组合键。
7、运行本例的程序,其运行结果如图2-4所示。15C#程序设计实用教程2.1.3 C#程序结构分析下面基于上述的“Welcome”项目的代码,来分析C#应用程序的结构。、命名空间、命名空间在Welcome程序中的第一条语句usingSystem语句表示导入System命名空间。程序Welcome里Console.WriteLine(“Welcome,C#!”)这条语句中的Console是System命名空间中包含的系统类库中已定义好的一个类,它代表系统控制台,即字符界面的输入和输出。16C#程序设计实用教程2.1.3 C#程序结构分析C#程序是用命名空间来组织代码,要访问某个命名空间中的类或对象,
8、必须用如下语法:命名空间命名空间.类名类名由于Console类位于System命名空间中,所以实际上用户在访问Console类时,完整的写法是:System.Console17C#程序设计实用教程2.1.3 C#程序结构分析但是,在程序的第一行,使用了:using System;这条语句用using语句导导入入System命命名名空空间间,这样在本程序中可以直接使用System命名空间中的类或对象,所以要访问Console类,就可以不用写为System.Console,直接写为Console即可。18C#程序设计实用教程2.1.3 C#程序结构分析2类类C#要求其程序中的每一个元素都要属于一个
9、类。程序Welcome的第二行classWelcome声声明明一一个个类类,类的名字为Welcome。这个程序的功能就是依靠它来完成的。C#程序由大括号“”和“”构成,程序中每一对大括号“”构成一个块。大括号成对出现大括号成对出现。19C#程序设计实用教程2.1.3 C#程序结构分析3Main()方法方法程序的入口从下面的代码开始:staticvoidMain()这行代码所定义的其实是在类Welcome的一个静态方静态方法法。C#规定,名字为Main()的静态方法就是程序的入口程序的入口。当程序执行时,就直接调用这个方法。这个方法包含一对大括号“”和“”,在这两个括号间的语句就是该方法所包含的
10、可执行语句,也就是该方法所要执行的功能。本例中该方法要执行的功能就是输出“Welcome,C#!”字符串,方法的执行从左括号“”开始,到右括号“”结束。20C#程序设计实用教程2.1.3 C#程序结构分析从上面的程序中还可以看出,Main()方法方法的所有部分都是包含在另一对大括号中的,这是类Welcome所带的一对大括号,该大括号中所有部分都是Welcome类的成员。在C#程序中,程序的执行总是从程序的执行总是从Main()方方法开始的。一个法开始的。一个C#程序中不允许出现两个或程序中不允许出现两个或两个以上两个以上Main()方法,而且在方法,而且在C#中中Main()方方法必须包含在一
11、个类中法必须包含在一个类中。21C#程序设计实用教程2.1.3 C#程序结构分析4注释注释在程序编写过程中常常要对程序中比较重要或需要注意的地方加以说明,但这些说明又不能参与程序的执行。通常是采用注释注释的方式将这些说明加入到程序中。合理的注释非但不会浪费编写程序的时间,反而能让程序更加清晰,这也是具有良好编程习惯的表现之一。22C#程序设计实用教程2.1.3 C#程序结构分析在C#语言中,提供了两种注释方法两种注释方法:(1)每一行中“/”后面的内容作为注释内容,该方式只对本行生效。(2)需要多行注释的时候,在第一行之前使用“/*”,在最后一行之后使用“*/”,即被“/*”与“*/”所包含的
12、内容都作为注释内容。23C#程序设计实用教程2.1.3 C#程序结构分析通过以上的分析,可知C#程序的基本结构基本结构如下:/导入导入.NET系统类库提供的命名空间系统类库提供的命名空间usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceWelcomeclassWelcome/定义类定义类staticvoidMain()/*程序的入口。其中程序的入口。其中static表示表示Main()方法是一个静态方法,方法是一个静态方法,void表示该方法没有返回值表示该方法没有返回值*/输出输出“Welcome,C#
13、!”Console.WriteLine(Welcome,C#!);24C#程序设计实用教程2.2 输入/输出操作一般情况下,数数据据输输入入的方式有两种:从控制台输入,或者从文件中输入;数据的输出也有两种情况:可以输出到控制台,也可以输出到文件中。控控制制台台(consoleconsole)的的输输入入/输输出出主主要要通通过过命命名名空空间间SystemSystem中中的的类类ConsoleConsole来来实实现现,它提供了从控制台读写字符的基本功能。控制台输入主要通过ConsoleConsole类类的ReadRead方方法法和ReadLineReadLine方方法法来实现的,控制台输出主
14、要通过ConsoleConsole类类的WriteWrite和WriteLineWriteLine方法方法来实现的。25C#程序设计实用教程2.2.1 Console.WriteLine()方法WriteLine()方方法法的作用是将信息输出到控制台,但是WriteLine方法在输出信息的后面添加一个回车换行符,用来产生一个新行新行。在WriteLine()方法中,可以采用“N,M:格格式化字符串式化字符串”的形式来格式化输出字符串,如:Console.WriteLine(“0,8:d5”,i)其中的参数含义如下:26C#程序设计实用教程2.2.1 Console.WriteLine()方法如
15、:Console.WriteLine(“0,8:d5”,i);比较Console.WriteLine(“N,M:格式化字符串”,i);花括号(“”)用来在输出字符串中插入变量。N表示输出变量的序号表示输出变量的序号,从0开始,如当N为0时,则对应输出第1个变量的值,当N为4时,则对应输出第5个变量,依次类推。,M:格式化字符串格式化字符串是可选项是可选项,其中M表示输出的变量所占的字符个数,当这个变量的值为负数时,输出的变量按照左对齐方式排列;如果这个变量的值为正数的时候,输出的变量按照右对齐方式排列。27C#程序设计实用教程2.2.1 Console.WriteLine()方法:格式化字符串
16、格式化字符串也是可选项也是可选项,因为在向控制台输出时,常常需要指定输出字符串的格式。通过使用数字格式化字符串,可以使用Xn的形式来指定输出字符串的格式,其中X指定数字的格式,n指定数字的精度,即有效数字的位数。28C#程序设计实用教程2.2.1 Console.WriteLine()方法这里提供8个常用的格式字符。1.货币格式货币格式货币格式C或者或者c的作用是将数据转换成货币格式,在格式字符C或者c后面的数字表示转换后的货币格式数据的小数位数。例如:doublek=1234.789;Console.WriteLine(“0,8:c2”,k);/结果是¥1234.7829C#程序设计实用教程
17、2.2.1 Console.WriteLine()方法2.整数数据类型格式整数数据类型格式格式字符字符D或者或者d的作用的作用是将数据转换成整数类型格式,在格式字符D或者d后面的数字表示转换后的整数类型数据的位数。这个数字通常是正数,如果这个数字大于整数数据的位数,则格式数据将在首位前以0补齐,如果这个数字小于整数数据的位数,则显示所有的整数位数。例如:intk=1234;Console.WriteLine(“0:d5”,k);/结果是0123430C#程序设计实用教程2.2.1 Console.WriteLine()方法3.科学计数法格式科学计数法格式格式字符格式字符E或者或者e的作用的作用
18、是将数据转换成科学计数法格式,在格式字符E或者e后面的数字表示转换后的科学计数法格式数据的小数位数,如果省略了这个数字,则显示7位有效数字。例如:intk=123000;doublef=1234.5578;Console.WriteLine(“0:e4”,f);/结果是1.2346e+00531C#程序设计实用教程2.2.1 Console.WriteLine()方法4.浮点数据类型格式浮点数据类型格式格式字符格式字符F或者或者f的作用的作用是将数据转换成浮点数据类型格式,在格式字符F或者f后面的数字表示转换后的浮点数据的小数位数,其默认值是2,如果所指定的小数位数大于数据的小数位数,则在数据
19、的末尾以0补充。例如:inta=123000;doubleb=1234.5578;Console.WriteLine(“0,-8:f4”,a);/结果是123000.000032C#程序设计实用教程2.2.1 Console.WriteLine()方法5.通用格式通用格式 格式字符字符G或者或者g的作用的作用是将数据转换成通用格式,依据系统要求转换后的格式字符串最短的原则,通用格式可以使用科学计数法来表示,也可以使用浮点数据类型的格式来表示。例如:doublek=1234.789;intj=123456;Console.WriteLine(“0:g”,j);/结果是123456Console.
20、WriteLine(“0:g”,k);/结果是1234.789Console.WriteLine(“0:g4”,k);/结果是1235Console.WriteLine(“0:g4”,j);/结果是1.235e+0533C#程序设计实用教程2.2.1 Console.WriteLine()方法6.自然数据格式自然数据格式格式字符N或者n的作用是将数据转换成自然数据格式,其特点是数据的整数部分以每三位用部分以每三位用“,”进行进行分隔,在格式字符N或者n后面的数字表示转换后的格式数据的小数位数,其默认值是2。例如:doublek=211122.12345;intj=1234567;Console
21、.WriteLine(“0:N”,k);/结果是211,122.12Console.WriteLine(“0:n”,j);/结果是1,234,567.00Console.WriteLine(“0:n4”,k);/结果是211,122.1235Console.WriteLine(“0:n4”,j);/结果是1,234,567.000034C#程序设计实用教程2.2.1 Console.WriteLine()方法7.十六进制数据格式十六进制数据格式格式字符X或者x的作用是将数据转换成十六进制数据格式,在格式字符X或者x后面的数字表示转换后的十六进制数据的数据位数。例如:Intj=123456;Co
22、nsole.WriteLine(“0:x”,j);/结果是1e240Console.WriteLine(“0:x6”,j);/结果是01e24035C#程序设计实用教程2.2.1 Console.WriteLine()方法【例例2-1】利用Console.WriteLine()方法输出变量值。程序代码如下:usingSystem;namespaceConsoleWriteLineclassTeststaticvoidMain()inti=12345;doublej=123.45678;Console.WriteLine(i=0,8:Dj=1,10:F3,i,j);Console.WriteLi
23、ne();Console.WriteLine(i=0,-8:Dj=1,-10:F3,i,j);36C#程序设计实用教程2.2.1 Console.WriteLine()方法【例例2-1】利用Console.WriteLine()方法输出变量值。程序的运行结果为:i=12345j=123.457i=12345j=123.457在 这 个 例 子 中,输 出 了 三 行,第 一 行 由 语 句Console.WriteLine(“i=0,8:Dj=1,10:F3”,i,j)使输出按照右对齐方式排列;第二行由Console.WriteLine()语句输出一个空行;第三行由Console.WriteL
24、ine(“i=0,-8:Dj=1,-10:F3”,i,j)语句使输出按照左对齐的方式排列。37C#程序设计实用教程2.2.2 Console.Write()方法Write()方法方法和WriteLine()方法方法类似,都是将信息输出到控制台,但是输出到屏幕后并不会产生一个新行。在Write()方法中,也可以采用“N,M:格式化字符串”的形式来格式化输出字符串,其中的参数含义如同WriteLine()方法中所述。38C#程序设计实用教程2.2.2 Console.Write()方法【例例2_2】利用Console.Write()方法输出变量值。程序代码如下:usingSystem;namesp
25、aceConsoleWriteclassProgramstaticvoidMain()inti=12345;doublej=123.45678;Console.Write(i=0,8:Dj=1,10:F3,i,j);Console.Write(i=0,-8:Dj=1,-10:F3,i,j);Console.Read();39C#程序设计实用教程2.2.2 Console.Write()方法【例例2_2】利用Console.Write()方法输出变量值。程序的运行结果是:i=12345j=123.457i=12345j=123.457在这个例子中,因为Write()方法不会产生一个新行,所以语句
26、“Console.Write(i=0,8:Dj=1,10:F3,i,j)”和“Console.Write(i=0,-8:Dj=1,-10:F3,i,j)”的输出占据了同一行。40C#程序设计实用教程2.2.3 Console.ReadLine()方法ReadLine()方法方法用来从控制台读取一行数据,一次读取一行字符的输入,并且直到用户按下Enter键它才会返回。但是,ReadLine()方法并不接收回车键。如果ReadLine()方法没有接收到任何输入,或者接收了无效的输入,那么ReadLine()方法将返回null。41C#程序设计实用教程2.2.3 Console.ReadLine()
27、方法【例例2_3】用Console.ReadLine()方法接收用户输入,然后输出。程序代码如下:usingSystem;namespaceConsole_ReadLineclassProgramstaticvoidMain()stringstr;Console.WriteLine(请输入你的姓名:);str=Console.ReadLine();Console.WriteLine(0,欢迎你!,str);42C#程序设计实用教程2.2.3 Console.ReadLine()方法【例例2_3】用Console.ReadLine()方法接收用户输入,然后输出。程序的运行结果为:请输入你的姓名:
28、李三李三,欢迎你!43C#程序设计实用教程2.2.4 Console.Read()方法Read()方法方法的作用是从控制台的输入流读取下一个字符,Read()方法一次只能从输入流读取一个字符,并且直到用户按回车键才会返回。当这个方法返回时,如果输入流中包含有效的输入,则它返回一个表示输入字符的整数;如果输入流中没有数据,则返回-1。如果用户输入了多个字符,然后按回车键(此时,输入流中将包含用户输入的字符加上回车键r(13)和换行符n(10),则Read()方法只返回用户输入的第1个字符。但是,用户可以多次调用Read()方法来获取所有输入的字符。44C#程序设计实用教程2.2.4 Consol
29、e.Read()方法【例2_4】用Console.Read()方法接收用户输入,然后输出。程序代码如下:usingSystem;namespaceConsole_ReadclassProgramstaticvoidMain()Console.Write(请输入字符:);inta=Console.Read();Console.WriteLine(用户输入的内容为:0,a);45C#程序设计实用教程2.2.4 Console.Read()方法【例2_4】用Console.Read()方法接收用户输入,然后输出。此例的运行结果为:请输入字符:abcd用户输入的内容为:97说明:说明:这里,97是字母
30、a的Unicode编码对应的十进制值。46C#程序设计实用教程2.3 第一个Windows应用程序 前面介绍了控制台应用程序实现的“Welcome”项目,下面让我们来看程序如何在WindowsWindows图形化界面图形化界面应用中实现。实现步骤如下:(1)启动VS.NET。(2)要创建一个C#的Windows应用程序,首先选择【文件】【新建】【项目】命令,打开【新建项目】对话框。47C#程序设计实用教程2.3 第一个Windows应用程序(3)在该对话框中,从左边的“项目类型”列表框中选择“Visual C#”选项,然后在右边的“模板”列表框中选择“Windows应用程序”选项。此时,下侧“
31、名称”输入框中输入“Welcome_WinForm”,并通过单击“浏览”按钮,选择工程所在目录;最后,单击“确定”按钮,关闭“新建项目”对话框。48C#程序设计实用教程2.3 第一个Windows应用程序(4)查看“解决方案资源管理器”窗口,如图2-6所示。在文件“Form1.cs”上单击右键,选择“重命名”,将其改名为“Welcome.cs”。49C#程序设计实用教程2.3 第一个Windows应用程序(5)查看主窗口,里面有一个自动生成的窗体Welcome,单击该窗体,然后单击右侧“属性”窗口,该窗口如图2-7所示。修改Name属性为“frmWelcome”;修改Text属性为“Welco
32、me!”。50C#程序设计实用教程2.3 第一个Windows应用程序(6)单击主窗口左侧的“工具箱”窗口,出现一些Windows控件,如图2-8所示。51C#程序设计实用教程2.3 第一个Windows应用程序(7)双击“Label”控件,或者单击后按住左键将其拖曳至主窗口的窗体中,并修改其属性。Name:lblDisplay。Text:空。BackColor:Windows。(8)双击“Button”控件,或者单击后按住左键将其拖曳至主窗口的窗体中,并修改其属性。Name:btnShow。Text:“显示”。最后窗体的效果如图2-9所示。52C#程序设计实用教程2.3 第一个Windows
33、应用程序(9)双击“显示”按钮,将进入代码窗口(通过主窗口上侧的标签可以在代码窗口和窗体窗口之间进行切换),可以看到VS.NET已经自动生成很多代码。在此,对于自动生成的代码先不关心。(10)进 入 代 码 窗 口 后 光 标 自 动 位 于“btnShow_Click()”内部(即单击“显示”按钮会触发这个光标),在光标处添加如下代码:this.lblDisplay.Text=Welcome,C#!“;53C#程序设计实用教程2.3 第一个Windows应用程序(11)使用快捷键“Ctrl+F5”,或者菜单操作:【调试】【开始执行】。启动程序后,执行结果如图2-10所示。(12)查看在相应目录下的工程 文 件,将 会 发 现 文 件 夹“Welcome_WinForm”。至此,第一个Windows Form应用程序就完成了。54C#程序设计实用教程2.4 本章小结本章讲述了C#程序设计的基本知识。两个实例的基础上,重点论述、分析了C#程序的建立、调试、编译、运行过程和C#程序的结构。CSC命令(可选)55C#程序设计实用教程