C#应用程序开发俞晓明电话13819195030邮箱:yuxm0571@163.com东忠软件学院·俞晓明课程内容1、.Net基本概念及VS基本操作2、C#语言基础3、C#流程控制4、数组5、函数及调用6、面向对象编程基础7、WinForm编程基础.Net与C#语言东忠软件学院·俞晓明1.1.NETFramework与VisualC#.NETFramework(又称.NET框架)是微软所创建的新一代应用开发平台,它能够让软件不仅适用于传统的PC而且也能够满足目前在网络时代所提出的新任务的需要。微软的目标是让.NET战略彻底改变软件的开发方式、发行方式和使用方式等等。.NETFramework是一种面向网络,支持各种用户终端的开发平台环境。东忠软件学院·俞晓明与微软传统的开发软件不同的是,.NETFramework不仅可用于Windows平台,也逐步推出可用于其他平台的版本。.NETFramework包括以下三个主要组成部分。东忠软件学院·俞晓明1.公共语言运行时公共语言运行时(CLR,CommonLanguageRuntime,也称通用语言运行库)是.NET框架的基础。东忠软件学院·俞晓明2.统一编程类库.NET框架的关键作用在于,它提供了一个跨编程语言的统一编程环境,即统一编程类库。东忠软件学院·俞晓明3.ASP.NETASP.NET建立在.NET框架的编程类之上,它提供了一个Web应用程序模型,并且包含使生成ASPWeb应用程序变得简单的控件集和结构。ASP.NET包含封装公共HTML用户界面控件(如文本框和下拉菜单)的控件集。东忠软件学院·俞晓明在CLR执行开发的源代码之前,需要进行编译。在.NET中,编译分为两个阶段:(1)把源代码编译为Microsoft中间语言(MSIL)。(2)CLR把IL编译为平台专用的代码。东忠软件学院·俞晓明1.1.2CLI、CLR与MSILCLI(通用语言基础构造,CommonLanguageInfrastructure)是微软开发的一个允许编程者用多种编程语言创建Web服务和其他应用的技术,包括运行程序所需的虚拟执行系统和定义不同数据类型如何相互作用的基类库,东忠软件学院·俞晓明CLR(公共语言运行时,CommonLanguageRuntime)是.NET的核心,CLR的功能通过编译器和工具公开,可以编写利用此托管执行环境的代码。东忠软件学院·俞晓明MSIL是将.NET代码转化为机器语言的一个中间过程。它是一种介于高级语言和基于Intel的汇编语言的伪汇编语言。东忠软件学院·俞晓明VisualC#语言简介C#是专门为.NET应用而开发出的语言,在保持C风格语言的表示形式和优美的同时,实现了应用程序的快速开发。C#具有如下特点:简洁的语法,强大的面向对象开发能力、与Web的紧密结合,完整的安全性与错误处理,较强灵活性与兼容性等。东忠软件学院·俞晓明用C#编写的源代码在编译时,被编译为一种符合CLI规范的中间语言。IL代码与资源(如位图和字符串)一起作为一种称为程序集的可执行文件存储在磁盘上,通常具有的扩展名为.exe或.dll。程序集包含清单,它提供关于程序集的类型、版本、区域性和安全等信息。东忠软件学院·俞晓明1.1.4VisualStudio2008集成开发环境1.VS2008的启动和退出2.VS2008集成开发环境界面3.VS2008中C#应用程序开发东忠软件学院·俞晓明【实例1】基于控制台的应用程序本例是进入C#学习的第1个案例,在这里将实现一个可以在控制台环境中显示文字的简单控制台程序,效果如图1-1-13所示。主要学习VS中控制台项目的创建,C#代码形式,控制台输入输出语句等东忠软件学院·俞晓明图1-1-13基于控制台的应用程序东忠软件学院·俞晓明【实例2】基于WindowsForms的应用程序作为第1个WindowsForms案例,实现如下左图界面,并实现右图效果的按钮事件响应主要学习如何创建WinForms项目,了解可视化界面设计及事件响应方法等东忠软件学院·俞晓明东忠软件学院·俞晓明1.2程序中简单错误的调试1.2.1程序中的错误程序错误可分为三类:语法错误、运行错误和逻辑错误。下面将就这几种错误的产生及调试进行学习。东忠软件学院·俞晓明语法错误:编译不通过,无法运行东忠软件学院·俞晓明运行错误:特定情况下运行出错东忠软件学院·俞晓明逻辑错误:运行结果不合理东忠软件学院·俞晓明【案例3】C#程序中简单错误的调试本例中,将通过简单调试,使出错的程序能够正常运行,效果如图1-2-5所示。东忠软件学院·俞晓明图1-2-5调试语法错误C#语法基础东忠软件学院·俞晓明2.1命名空间1.命名空间简介命名空间是.NETFramework的核心内容,它用于将类组织到逻辑组中,使这些类更易于调用和管理。东忠软件学院·俞晓明.NETFramework类库由命名空间组成。命名空间用于指定范围,命名空间名称是类型的完全限定名(namespace.typename)的一部分。在使用命名空间时,可以使用符号“.”来表明命名空间的层次。东忠软件学院·俞晓明2.命名空间的定义命名空间使用关键字namespace进行定义,定义格式如下:namespace命名空间名称{类型声明...}东忠软件学院·俞晓明3.使用命名空间在C#中使用命名空间可以有两种方式。一种是使用全局限定名,例如:System.Console.WriteLine(“欢迎进入C#的世界!”)。东忠软件学院·俞晓明如果在程序中需要多次重复使用某个命名空间中的内容时,使用全局限定名会使代码显示累赘,此时,可以使用关键字using导入某个命名空间的内容或为其取一个别名,其格式为:using命名空间;using别名=命名空间或类型;东忠软件学院·俞晓明2.2基本数据类型C#为程序设计提供了丰富的数据类型,可以分为三个大类:值类型、引用类型和指针类型。东忠软件学院·俞晓明C#的值类型可以分为三种:简单数据类型、结构类型(Struct)和枚举类型(Enumeration)。所有的值类型均隐式派生自命名空间System.ValueType。东忠软件学院·俞晓明C#的引用类型可分为四种:类(class)、委托(delegate)、数组(array)和接口(interface)。东忠软件学院·俞晓明简单数据类型1.整型(sbyte,byte,shot,ushot,int,uint,long,ulong)2.实型(float,double,decimal)3.字符类型(char)4.布尔型(bool)东忠软件学院·俞晓明2.3变量与常量1.变量变量是指在程序运行过程中,值可以发生变化的量。从本质上来看,变量就是计算机内存中的一个存储空间,是程序中存储信息的基本单元。变量定义的一般形式如下:类型变量名表;东忠软件学院·俞晓明2.常量常量一种形式是直接出现在代码中的数据,其格式有严格规定,只能是整形(24,3864)、浮点数(1.38,5.6e2)、布尔型(true,false)、字符(‘2’,’A’)和字符串(”F47lk\n”)五种。字符和字符串常量中,可以使用反斜杠“\”开头的字符序列,称之为转义字符。直接常量只使用一次,并不被程序存储。常量的另一个形式是符号常量,指在程序运行过程中可不断使用但不能发生改变的量。东忠软件学院·俞晓明符号常量的定义,可以在变量定义形式前加上const关键字或readonly关键字来得到。定义形式如下:const数据类型常量名=值表达式;readonly数据类型常量名=值表达式;东忠软件学院·俞晓明2.4运算符与表达式运算符又称为操作符,是数据间进行运算的符号,它表示数据间进行操作的方式。东忠软件学院·俞晓明C#具有丰富的运算符,按运算类型可分为赋值运算符、算术运算符、逻辑运算符、关系运算符、位运算符、指针运算符和取成员运算符等;按运算对象(又称为操作数)的个数又可分为一元运算符、二元运算符和三元运算符。东忠软件学院·俞晓明表达式就是按照一定规则,将运算对象用运算符连接起来的有意义的式子。运算对象可以是常量、变量、函数,也可以是别的表达式。在构成表达式时,运算符具有不同的优先级,还有不同的结合方式。东忠软件学院·俞晓明1.算术运算符(1)加法运算符“+”与减法运算符“-”(2)乘法运算符“*”与除法运算符“/”(3)求余运算符“%”(4)递增“++”和递减“--”运算符(5)一元正运算符“+”和一元负运算符“-”东忠软件学院·俞晓明2.赋值运算符赋值运算用于改变变量的值,即为变量赋值。C#中提供了一个简单赋值运算符“=”和多个复合赋值运算符,包括:+=、-=、*=、/=、%=、=、=、&=、^=和|=。东忠软件学院·俞晓明复合赋值运算符是将一个其他运算符加上简单赋值运算符而得到,其含义为:将左操作数和右操作数按运算符进行运算,将结果的值赋给左操作数。东忠软件学院·俞晓明2.5类型转换1.隐式转换在C#中在运算时会对数据类型将自动进行转换,这种转换一般是“向上”的,即由占存储空间小的数据类型向占存储空间大的数据类型转换。东忠软件学院·俞晓明2.显式转换C#语言提供了一个类型转换运算符用于对数据类型进行强制转换,类型转换运算符用圆括号“()”表示,其使用格式如下:(类型名)操作数东忠软件学院·俞晓明3.System.Convert类System.Convert类位于命名空间System,它为数据转换提供了一整套方法,可以将一个基本数据类型转换为另一个基本数据类型。使用Convert类的方法可以方便地执行显示、隐式数据类型转换的功能,以及不相关数据类型的转换。东忠软件学院·俞晓明2.6代码注释C#的注释方式和C++相同,可以使用双斜杠(//)和/*...*/进行注释。东忠软件学院·俞晓明2.7控制台输入输出使用System.Console类ReadLine方法用于从标准输入设备(通常是键盘)输入一行字符(以回车表示结束),返回的结果是string(字符串)类型数据。WriteLine和Write方法均用于在标准输出设备(一般是屏幕)上输出文本(即字符串)。东忠软件学院·俞晓明(1)格式化输出Console.WriteLine和Console.Write方法还可以输出格式化信息,格式如下:Console.Write(格式化字符串,输出对象1,输出对象2...)Console.WriteLine(格式化字符串,输出对象1,输出对象2...)东忠软件学院·俞晓明(2)指定输出宽度如果需要在格式化输出时指定输出的字符串宽度,可以按下面的格式设置格式化字符串:...{0,数字}...{1,数字}...东忠软件学院·俞晓明【实例4】三角形面积计算要求:从键盘读入三角形abc三个边长,计算并输出其面积和三个夹角。要点:变量的定义使用,控制台数据读入和输出,数据类型转换,复杂运算和函数运算东忠软件学院·俞晓明doublea,b,c,t,s;Console.WriteLine(请输入三角形的三个边长);Console.Write(a=);a=Convert.ToDouble(Console.ReadLine());Console.Write(b=);b=Convert.ToDouble(Console.ReadLine());Console.Write(c=);c=Convert.ToDouble(Console.ReadLine());t=(a+b+c)/2;s=Math.Sqrt(t*(t-a)*(t-b)*(t-c));Console.WriteLine(这个三角形面积为:+s);Console.ReadLine();流程控制东忠软件学院·俞晓明3.1算法与程序流程控制算法是程序设计中的重要内容,是解决问题的方法、步骤;程序中的控制结构则是实现算法的功能模块。东忠软件学院·俞晓明算法具有以下五个特点:(1)有穷性(2)可行性(3)确定性(4)有零个或多个输入(5)有一个或多个输出东忠软件学院·俞晓明算法流程图在程序设计中