




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.Net程序设计教材:Visual C# .NET实用教程,清华大学出版社课程学习的目的:1学习并掌握.NET技术、C#的编程方法和面向对象思想;2.学习并掌握ADO.NET技术及Windows数据库应用程序的开发;3.学习并掌握 ASP.NET技术及Web应用程序的开发;4.学习并掌握网络编程的知识前期课程基础:数据结构、操作系统、计算机网络第1讲 .NET综述1.1 .NET介绍1.2 .NET核心成分简介1.2.1公共语言运行库1.2.2 .NET Framework类库1.2.3 中间语言和程序集1.2.4 公共语言规范1.2.5 通用类型系统1.3 开发工具及C#语言1.3.1 开发
2、工具介绍1.3.2 C#语言简介1.4 基于.NET的应用程序1.4.1 SDK和IDE1.4.2 基于.NET的应用程序1.5 C#程序设计初步1.5.1 在SDK上开发控制台程序1.5.2 在IDE上开发Windows应用程序1.5.3 在IDE上开发 Web应用程序第2讲C#类型和语句成分2.1关键字、标识符和注释2.1.1 关键字2.1.2 标识符及其命名2.1.3 注释2.2 C#类型基础2.2.1 类型分类2.2.2 C#语言的类型系统2.2.3 变量2.2.4常量和文字2.3 值类型2.3.1简单类型2.3.2枚举类型2.4 数组类型2.4.1 一维数组2.4.2多维数组2.4.
3、3 交错数组2.4.4 Array类简介2.4.5 foreach语句2.5 字符串常量2.5.1 创建字符串2.5.2 String字符串的比较2.6 结构2.6.1 结构的声明2.6.2 结构的实例化及应用2.7运算符和表达式2.7.1 算术运算符2.7.2 关系运算符2.7.3 逻辑运算符2.7.4 位运算符2.7.5 赋值运算符2.7.6 条件运算符2.7.7 运行符的优先级及结合性2.8 数据类型转换2.8.1隐式类型转换2.8.2 显示转换第3讲 C#语句3.1 简单语句3.1.1 表达式语句3.1.2 空语句3.1.3复合语句3.1.4 声明语句3.2 选择语句3.2.1 条件运
4、算符3.2.2 if语句3.2.3 switch语句3.3 循环语句3.3.1 while循环3.3.2 do_while循环3.3.3 for循环3.4 跳转语句3.4.1 break语句3.4.2 continue语句3.4.3 goto 语句3.4.4 return 语句3.5 命名空间3.5.1命名空间声明3.5.2 using 命名空间指令3.5.3 using别名指令第4讲 面向对象程序设计基础-类、对象、方法4.1 面向对象程序设计概述4.2 类和对象4.2.1 类的声明4.2.2 类的成员4.2.3 对象的声明4.3 构造函数4.3.1 默认构造函数4.3.2 构造函数的重载4
5、.4 析构函数4.5 方法4.5.1 方法的声明及调用4.5.2 方法中的参数传递4.5.3 实例方法和静态方法4.5.4 方法重载4.6运算符重载4.7属性和索引器4.7.1 属性的声明和使用4.7.2 索引器的声明和使用4.7.3 属性和索引器的比较第5讲 面向对象程序设计-继承、多态5.1 类的继承5.1.1 基类与派生类5.1.2 成员的继承、添加和隐藏5.1.3 base关键字5.2 抽象类与封闭类5.2.1 抽象方法、属性、索引器5.2.2 抽象类5.2.3 密封类5.3 多态5.3.1 虚成员5.3.2 重写5.3.3 编译时多态和运行时多态第6讲 面向对象程序设计-接口、委托1
6、 接口.1 接口的定义.2 接口的实现2委托和事件1 委托2 事件3 异常处理1 异常类2 异常处理步骤3 抛出异常4 捕获处理异常第7讲 Windows应用程序7.1 Windows应用程序开发步骤7.1.1创建窗体7.1.2 添加控件及控件布局7.1.3 响应事件7.2 Windows常用控件7.2.1 文本类控件7.2.2 按钮类控件7.2.3 对话框类控件7.2.4 列表框、视图类控件7.2.5 滚动类控件7.2.6 工具栏和状态栏控件7.2.7 定时器控件7.2.8 菜单控件7.3多文档界面(MDI)7.3.1 创建MDI父窗体7.3.2 创建MDI子窗体7.3.3 确定活动的MDI
7、子窗体7.3.4 排列子窗体7.4 实例解析第7讲 ADO.NET数据库访问技术8.1 ADO.NET概述8.2 ADO.NET体系结构8.2.1 ADO.NET的总体结构8.2.2 DataSet结构8.2.3 .NET Framwork数据提供程序8.2.4 ADO.NET开发数据库应用程序的一般步骤8.3数据库的连接8.3.1 Connection连接字符串8.3.2 创建并使用连接对象8.4 Command对象的使用8.4.1 创建Command对象8.4.2 执行命令8.4.3 参数化查询8.4.4 执行存储过程8.5 DataReader对象的使用8.5.1 创建DataReade
8、r对象8.5.2 使用DataReader读取数据8.6 DataSet和DataAdapter的使用8.6.1 DataSet对象管理数据8.6.2 使用DataAdapter对象第9讲 Windows数据库应用程序开发9.1数据绑定9.1.1 简单数据绑定9.1.2 复杂数据绑定9.2数据源的类型9.2.1 数组数据源9.2.2 数据表数据源9.2.3 数据集数据源9.3 Windows数据库应用实例9.3.1数据库的创建及连接9.3.2主要界面及相关代码第10讲 ASP.NET 技术10.1 ASP.NET简介10.1.1 ASP.NET的特点10.1.2 ASP.NET代码分离技术10
9、.1.3 Web窗体10.2 ASP.NET 控件10.2.1 HTML服务器控件10.2.2 Web服务器控件10.2.3验证控件10.3 ASP.NET内置对象10.3.1 Response对象10.3.2 Request 对象10.3.3 Server对象10.3.4 Session对象10.3.5 Application对象第11讲 Web应用程序开发基础11.1 Web数据绑定技术11.2 列表类数据绑定控件11.2.1 列表控件概述11.2.2 列表类控件数据绑定举例11.3 GridView控件11.3.1 GridView控件概述11.3.2 常用属性、方法和事件11.3.3
10、GridView中的字段类型11.3.4 GridView数据显示11.3.5编辑和删除数据11.3.6 分页显示数据和数据排序11.4 Global.asax文件11.5 Web.config文件11.5.1 配置与调用数据库链接字符串11.5.2 配置文件Web.config第12讲 网上选课系统的开发12.1需求分析12.2数据库设计12.2.1 数据库表12.2.2 存储过程12.3系统设计12.4数据库连接12.4.1 Web.Config的配置12.4.2 调用连接字符串12.5 系统实现12.5.1 登录界面(Login/Login.aspx) 12.5.2 选课界面(stude
11、nt/selectcourse.aspx) 12.5.3 提交界面(student/tijiao.aspx) 12.5.4 学生管理界面(manager/StudentList) 12.5.5 选课管理界面(manager/XuanKeList.aspx) 以上为考试范围第13讲 多线程和同步13.1 基本概念13.1.1多线程概念13.1.2 C#中线程实现方法13.2 Thread类13.2.1 Thread类介绍13.2.2 线程的状态和生命周期13.2.3 线程的优先级13.3多线程编程13.3.1 编程步骤13.3.2 编程实例13.4线程同步和互斥13.4.1多个线程同时修改共享数
12、据可能发生的错误13.4.2 用Lock语句实现互斥13.4.3 用Mutex类实现互斥13.4.4 用Monitor类实现互斥13.5 实例解析第14讲 网络协议与套接字编程14.1 TCP/IP网络协议14.1.1 TCP/IP参考模型14.1.2网间协议IP14.1.3 传输控制协议TCP14.1.4 C#中相关的类14.2套接字编程技术14.2.1 IP地址和端口14.2.2 套接字14.2.3 面向连接的套接字14.2.4无连接的套接字14.3 套接字编程实例1、.Net包括哪些内容?主要介绍.NET的两个重要实体:公共语言运行库(Common Language Runtime,CL
13、R)和.NET Framework类库(Framework Class Library,FCL),以及其它核心成分。2、什么是.Net Framework?.NET平台又称.NET框架(.NET Framework),是.NET的核心组成部分,提供了一个多语言组件开发和执行的环境一个完全可操控的安全的和特性丰富的应用开发执行环境,这不但使得应用程序的开发和发布更加简单,并且实现了众多种类语言间的无缝集成。3、公共语言运行库公共语言运行库(Common Language Runtime,CLR)又称为公共语言运行时或公共语言运行环境,是.NET系统构架中核心的部分,负责执行代码、管理内存、提供安
14、全性等核心功能。它是构成.NET框架的两个实体中的一个。CLR和Java虚拟机一样是一个运行时环境,其主要功能包括:l 执行和管理:完成运行过程中的代码加载、应用程序和托管对象的内存管理、对象自动布局、使用JIT(Just In Time)编译器将MSIL(Microsoft intermediate language)编译成本地代码并且控制代码执行、处理异常等全部步骤。l 提供安全保证:类型安全、代码访问安全、控制托管和非托管代码的互操作。l 对开发者的支持:提供界面信息,帮助调试等。4、代码执行过程在.NET中,将代码分为托管代码(managed code)和非托管代码(unmanaged
15、 code )两种C#.NET源程序VB.NET源程序CLS:公共语言运行规范VB.NET编译器C#编译器MSIL:Microsoft中间语言CLR:公共语言运行库(JIT:just in time 编译器)本地代码代码执行流程5、开发.NET的应用程序使用两种环境SDK和IDE,二者区别与联系SDK和IDE分别是Microsoft的software development kit(软件开发工具包)和integrated development environment(集成开发环境)的缩写。采用SDK开发,首先使用文本编辑器编写代码,然后用命令行编译和执行。开发控制台程序通常使用SDK环境。I
16、DE是可视化的开发环境,所谓可视化编程,是一种自动或半自动的编程方法。在编程过程中,程序员利用系统提供的图形元素,组合成所需要的界面或组合成能够体现程序逻辑的流程,系统就能自动地产生部分代码或全部代码。在IDE中,程序员可以利用系统中提供的图形元素组合成界面,开发Windows窗体应用程序和Web应用程序。6、IDE上直接支持的应用程序的主要类型有哪些?1、Windows应用程序Windows应用程序是基于Windows 窗体(Windows Forms)的应用程序,是一种基于图形界面接口GUI的应用程序,一般是在用户计算机本地运行。2、Windows控件库可以创建Windows窗体应用程序的
17、自定义控件,以方便用户的使用。3、ASP.NET Web应用程序ASP.NET是.NET中统一的Web开发平台,可以用来开发企业级的Web应用程序。ASP.NET使程序员能够像设计Windows窗体应用程序一样设计Web应用程序,并且采用代码分离技术,使代码与HTML文档分离,方便代码重用,还具有服务器控件的开发能力,能够在IDE中进行可视化的开发。4、ASP.NET Web ServiceWeb Service是Microsoft的.NET战略中的重点,由于XML(extensible markup language)是当今Internet和各类系统之间数据交换的标准,所以也称为XML We
18、b Services,它可以实现客户端服务器或服务器客户端之间的数据交换。XML Web Services 采用松耦合的分布式结构,不与特定的组件技术或对象调用约定相关联,也与编程语言、组件模型、操作系统等无关。一般的Web程序,如浏览器,是人与程序的对话,而Web Service是程序与程序的对话。Web Service是公认的Internet下一个最大的浪潮,也是Internet应用中最有影响的服务。5、智能设备应用程序Internet不仅可以连接PC机、服务器等计算机设备,也可以连入电视机、电冰箱、打印机等家用的或办公的电器,可以通过Internet进行远程控制,智能设备应用程序就是连接
19、、控制这些设备,并互相通信的应用程序。6、ASP.NET移动Web应用程序此类应用程序应用于能无线上网的移动数字设备,常见的移动设备有移动电话、PDA、笔记本电脑等。.NET提供移动控件来连接移动设备的设备适配器,在.NET上开发移动Web应用程序的过程和开发其它Web应用程序类似。7、C#语言支持的两种基本数据类型值类型和引用类型。理解这两种类型的区别是理解C#语言各种类型及其用法的基础。l 值类型:值类型变量存放在栈里,所以直接包含有它们的数据,每个值类型变量都有它自己的副本,因此对一个变量的操作不会影响到另一个变量。l 引用类型:引用类型的存储分为两部分,引用类型中对数据的引用存放在栈里
20、面,而引用类型的数据存放在堆里面。所以引用类型变量的名不包含它的数据,而是只包含对它的数据的引用。引用类型变量的数据存储在一个实例中,不同的变量可以引用同一个对象的实例,因此在对一个引用变量操作时,改变实例值时将会影响其他引用这个实例的引用变量,在编程中要格外注意。8、C#语言提供了两种实现继承的方式:类的继承和接口继承。他们的区别与联系.通常把作为基础、被继承的类称为基类,继承别的类的子类称为派生类。一个类从另一个类派生出来时,派生类从基类那里继承特性。派生类也可以作为其它类的基类。C#中,派生类只能从一个类中继承,不支持多继承的机制。如果必须使用多重继承,可以使用接口继承来实现。9C#的关
21、键字abstractasbaseboolbreakbytecasecatchcharcheckedclassconstcontinuedecimaldefaultdelegatedodoubleelseenumeventexplicitexternfalsefinallyfixedfloatforforeachgotoifimplicitinintinterfaceinternalislocklongnamespacenewnullobjectoperatoroutoverrideparamsprivateprotectedpublicreadonlyrefreturnsbytesealeds
22、hortsizeofstackallocstaticstringstructswitchthisthrowtruetrytypeofuintulonguncheckedunsafeushortusingvirtualvolatilevoidwhilenew只允许用在嵌套类中,表明隐藏了从基类继承而来、与基类中同名的成员abstract说明该类是一个抽象类,该类含有抽象成员,因此不能被实例化,只能用来做其他类的基类,而不能产生对象sealed说明该类是一个密封类,不能做其他类的基类,不能再派生新的类public表示外界可以不受限制的访问该类。类的访问权限省略时默认为publicprotected
23、该类只能被这个类的成员或类派生成员访问internal表示该类能由程序集中的所有文件使用,而不能由程序集之外的对象使用private表示该类只能被这个类的成员访问10、 C#的基本数据类型枚举类型用户自定义类型简单类型指针类型用户自定义类型接口数组类类型指针类型接口用户自定义类型值类型引用类型类型委托字符串图2.1 C#的类型系统值类型包括三种:简单类型、枚举类型和自定义类型(这里指结构)。将在2.3小节介绍前两种值类型,在第5章介绍结构类型。引用类型包括类(class)、接口(interface)、委托(delegate)、数组(array)、字符串(String)和Object以及不提倡使
24、用的指针类型。习惯将引用类型的变量称为对象,而值类型的变量仍然称为变量。引用类型和值类型的最大区别是引用类型的数据存储在堆中,而在栈中存储它的数据的引用。 位运算符“”是二元运算符,称为左移运算符,它的第一操作数是int、uint、long或ulong中的一种;第二操作数是int量,表示第一操作数需要向左移位的次数。左移的结果是第一操作数的最高位移出,而最低位由0填充。例如: int c = 48;/c十六进制值是 int s = c ”和“1);Console.WriteLine(无符号数右移1位:0, j 1);输出结果是:有符号数右移1位:-128无符号数右移1位:128知 识 点 汇
25、总1、 什么是面向对象程序设计?2、 什么是类?类的多态 、封装、继承作用是什么?类的成员由两部分组成,一部分是类体中以类成员声明形式引入的类成员,另一部分是直接从它的基类继承而来的成员。类的成员主要包括数据成员和方法成员,类是完成对它们封装的结构类型。类的数据成员可以是常量、字段和对象等。方法成员包含方法、属性、索引器、事件、操作符、构造函数、析构函数等。当字段、方法、属性、事件、运算符和构造函数声明中含有static修饰符时,则表明它们是静态成员,否则就是实例成员。静态成员属于类,而实例成员属于对象。类成员声明时,可以使用以下5种访问修饰符中的一种:public、protected、int
26、ernal、private、protected internal。当类成员声明中不包含访问修饰符时,默认访问修饰符为private。多态就是指一个成员在不同的上下文中表现出不同的功能。多态是面向对象程序设计中重要概念和常见技术,也是一种代码重用技术。虚成员和虚成员的重写是多态技术的基础。根据C#是在编译时还是在运行时确定得调用不同类对象的哪个同名成员,将多态分为如下两种:编译时多态和运行时多态。编译时多态是指在编译时就能确定调用什么对象中的成员,也称为早绑定。隐藏、重载都属于早期绑定,即编译时多态。运行时多态是指只有当运行时才能确定调用哪个对象中的成员,又称为晚绑定。虚方法、重写是晚绑定,即运
27、行时多态。一般所说的多态性均为运行时多态。3、 构造方法(构造函数)构造函数的重载是常见的现象,同一个类中有多个构造函数,区别他们的依据是参数列表,同一个类中任意两个构造函数的参数列表必须不同,参数列表只要具备下列条件之一,就可以认为是不同的参数列表,进而可以认为是两个重载的构造函数:1)参数列表中参数个数不同;2)参数列表中参数个数相同,但参数类型不同;3)参数列表中参数个数相同,参数类型种类也相同,但排列的次序不同。4、 属性属性由两部分组成:属性头和存取器。存取器分为get访问器和set访问器。下面给出属性的声明。 语法形式: 修饰符 类型说明符 属性名 访问声明 其中:l 修饰符new
28、, public, protected, internal, private, static, virtual, override和abstract 9种。l 访问声明用来声明属性访问器。给属性赋值时使用set访问器, 获取属性值时使用get访问器。在访问声明中,如果只有get访问器,表示是只读属性;如果只有set访问器,表示只写属性;两个都有,表示读写属性。set访问器是一个带有简单值类型参数的方法,用于处理类外部的写入值。set访问器带有一个特殊的关键字value,value就是set访问器的隐式参数,在set中通过value将外部的输入传递进来,然后赋值给类中的某个变量成员。get访问器
29、是一个不带参数的方法,它用于向外部返回属性成员的值。通常访问函数的语句或语句块主要由return或throw语句返回某个变量成员的值。为了实现良好的数据封装和数据隐藏,类的字段成员的访问属性一般设置为private或protected,这样在类的外部就不能直接读/写这些字段了,通常的办法是提供public级的方法来访问私有的或保护的字段。为了实现对数据成员更好地封装和保护,同时又向外界提供更有效的访问形式,C#采用属性来实现这种目标。属性是一种特殊的成分,它具有方法的本质,又具有字段的形式,即属性的定义类似于方法的定义,属性的使用类似于字段的使用。属性完善了C#的封装功能,使得所有的数据成员都
30、可以成为私有成员,从而更好地体现了面向对象程序设计的封装性。5、 索引器索引器允许按照与数组相同的方式对类、结构或接口进行索引。索引器类似于属性,不同之处在于它们的访问器采用参数。下面给出索引器的声明。 语法形式: 修饰符 索引器声明符 访问器声明 其中:l 修饰符可以是new、 virtual、sealed、override、abstract、extern以及public、protected、internal、private四个访问修饰符的有效组合。注意,索引器修饰符不可以是static的。l 索引器声明符的形式有两种,分别是:类型 this 形参表或类型 接口类型 this 形参表 注意此
31、处“”不表示可选,是索引器声明符的必要部分。而this是C#中的关键字,除了可以声明索引器以外,还用于限定被相似的名称隐藏的成员、将对象作为参数传递到其它方法。l 访问器声明,也要使用get()和set()访问器,不同的是使用索引指示器取得的对象是对象中各元素的值,而不是特定的数据成员。使用索引器的形式为:对象名实参使用索引器也是C#的一个特色,一个类往往包含了数组型的对象,索引器使得可以像数组那样对对象使用下标,为我们提供了通过索引方式方便地访问类的数据信息的方法。 6、 抽象类特点是什么?举例说明 用关键字abstract修饰的抽象类是一种没有被完整定义的类,因此它不能用来实例化,也就是说
32、,不能产生对象。设计abstract类的目的是为了被继承,其意义在于:1)、包含派生类的公有成员。这些公有成员在抽象类中定义一次,就可以被反复使用,提高软件开发的效率和可维护性。2)、规范行为。抽象方法等具体行为特征的成员实际上是一种建模过程,规定了输入口和输出口,而将实现的细节留给派生类根据实际情况编程。同一个抽象类的派生类有许多共性,这使得它们有了交互的基础。下面给出抽象类的声明。 语法形式: abstract class 类名 抽象类不能产生实例,因此不能这样书写代码,如:抽象类名 对象名 = new 抽象类名(参数列表)new 抽象类名(参数列表)。这样的代码都是错误的。 设计抽象类时
33、要注意以下几点:1)、抽象类虽然不能产生对象,但可以有构造函数。2)、抽象类是要被继承的,所以不能和sealed修饰符联用。3)、抽象类的派生类可以依然是抽象类,只有当派生类实现了所有抽象成员后,才演化为一个普通的类,这时才能产生对象。7、 抽象方法 用abstract修饰的方法、属性和索引器分别称为抽象方法、抽象属性、和抽象索引器。它们共同特点是只有行为的定义,却没有行为的实现。抽象方法是只有方法头,没有方法体的方法。抽象方法的声明格式如下。语法形式:abstract 返回类型 方法名(参数列表); 抽象方法规定了方法的输入参数的类型和数量以及输出的类型,以此定义了方法的激励和响应的形式,而
34、在内容上可由实现者任意实现,因此仅凭抽象方法的定义来判断方法的功能是不可靠的。抽象属性中可以选择get和set关键字,但没有具体的执行语句,抽象属性的声明格式如下。语法形式:abstract 返回类型 属性名get; set;而抽象索引器的声明形式和抽象属性的很相似。 语法形式: abstract 返回类型 this参数列表 get; set; 在用到abstract关键字时,需要注意以下几点:1)、abstract不能和static同时修饰同一个方法。2)、abstract也不能和private同时修饰同一个方法,并且不能省略访问控制符。3)、abstract方法只能出现在abstract类
35、中,并且只有当包含此抽象方法的抽象类被继承之后,才能在派生类中被实现。4)、派生类实现抽象方法时必须使用关键字override,否则被默认为是缺省的关键字new。8、 接口接口是抽象成员的集合,这些抽象成员可以是抽象方法、属性、索引器、事件,接口是实现多继承的工具。 实际上,接口是一些实现特定功能的抽象成员的集合。一个类可以继承多个接口,从而获得多个行为的描述,将它们组合成新的功能并在类中实现。 接口的声明。语法形式: 接口修饰符 interface 接口名:基接口列表 接口体 其中:l 接口修饰符有new、public、protected、internal、private。l Interfa
36、ce声明接口时的关键字。l 接口名一个标识符,首字母为大写的I。l “:”表示继承,接口可以多继承。基接口列表是一个或多个基接口类型,正在被定义的接口将继承基接口列表中的所有基接口,出现在基接口列表中的基接口也可能继承了其他的接口,为了方便区分,把出现在基接口列表中的基接口称为显式基接口。基接口之间用“,”分割。接口继承其所有基接口的所有成员,也可以用new隐藏基接口的成员using System;public interface Igram /声明图形接口 double Area(); double GramLength(); int Sidesget;public interface ID
37、isplay/声明输出接口 void Print();public class Square:Igram,IDisplay private int sides; public int SideLength; public Square()/构造函数 sides=4; public int Sides/实现Igram接口的Sides属性成员 get return sides; public double Area()/实现Igram接口的Area方法成员 return(double)(SideLength*SideLength); public double GramLength() /实现Ig
38、ram接口的GramLength方法成员 return (double)(Sides * SideLength); public void Print()/实现IDisplay接口的Print方法成员 Console.WriteLine(n计算正方形面积结果如下:); Console.WriteLine(边长:0, this.SideLength); Console.WriteLine(周长:0, this.GramLength(); Console.WriteLine(面积:0, this.Area(); public class App public static void Main()
39、Square sq = new Square(); sq.SideLength = 5; sq.Print(); 运行结果: 在同一个类Square中实现了两个接口:Igram和IDisplay。9、 参数传递C#中传入到方法中的参数不同,可分为4种:传递值类型的参数、传递引用类型的参数、传递多个引用类型参数和传递个数不确定的参数。传递多个引用类型参数return语句一次只能返回一个结果,针对这种情况,C#提供了一种特殊的参数传递方式:传递多个引用类型参数。完成这种数据传递方式所使用的是输出型参数,用关键字out表示。与引用型参数类似,输出型参数也不开辟新的内存区域。它与引用型参数的区别:调用
40、方法前无需对变量进行初始化,正因为如此,在out参数没有被显示地赋值之前,不能使用。在将实参作为输出型参数传递的调用完成后,该实参变量将会被该方法中的形参明确赋值,并将数据从方法中传出至调用处。out修饰符后应跟随形参类型相同的类型声明。下面给出输出型参数的实例, using System;public class Calculate public void Cal(int inNum, out int outNum1,out int outNum2 ) outNum1 = inNum * inNum; outNum2 = inNum*10; class Test public static
41、void Main() Calculate cal = new Calculate(); int outnum1;/不必初始化 int outnum2;/不必初始化 cal.Cal(35, out outnum1,out outnum2); Console.WriteLine(outnum1:0,outnum1); Console.WriteLine(outnum2:0,outnum2); 运行结果:传递个数不确定的参数当需要传递的参数个数不确定时,如求几个数的最大值,由于没有规定是几个数,运行程序时,每次输入的值的个数不一定一样。为了解决这个问题,C#采用参数数组。形参数组前如果用param
42、s修饰符进行声明就是参数数组,通过参数数组可以向函数传递个数变化的参数。using System;class ParamsTest static int ParamsMeth(ref int sum, params int arr) int i; for (i = 0; i arr.Length; i+) sum = sum + arri; arri = arri * arri; return (arrarr.Length - 1); static void Main() int a = 1, 2, 3 ; int i, L; int s = 0,z=0; ParamsMeth(ref s,
43、a);/数组作为实参 Console.WriteLine(数组作为实参的结果:); Console.WriteLine(和为:0, s); for (i = 0; i a.Length; i+) Console.WriteLine(a0=1, i, ai); Console.WriteLine(与形参数组的元素属于同一类型的变量做实参的结果:); L = ParamsMeth(ref z, 23, 45);/与形参数组的元素属于同一类型的变量做实参 Console.WriteLine(和为:0, z); Console.WriteLine(输入最后数值的乘积:0, L); 运行结果:10、 语
44、句常用的简单语句包括赋值语句、空语句、表达式语句、复合语句等C#中常用的三种分支技术:条件运算符;if语句;switch语句。C#提供了4种循环语句:while、do_while、for和foreachbreak语句、continue语句、goto语句、return语句等。1) break语句除了在switch语句中使用break语句,它还用于循环结构中,作用是结束其所在的结构语句。它的格式是:break;break语句的目标地址为包含它的switch、while、do、for、或foreach语句的结尾,如果不在这些语句块中,编译将出错。2) continue语句continue语句用于循环
45、结构中,其作用是结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环体的判定。格式是:continue;continue语句重新开始一次包含它的while、do、for、或foreach语句的执行,其目标地址也是上述这些语句的内嵌语句结尾,如果不在这些语句块中,编译将出错。continue语句和break语句的区别是:continue只跳出一次循环,而break语句则跳出整个循环语句或switch语句。当有switch、while、do、for或foreach语句相互嵌套的时候,break语句只是跳出直接包含它的那个语句块。如果要在多处嵌套语句中完成转移,必须使用goto
46、语句。3) goto 语句goto语句的功能是将控制转到由标签标记的语句。格式是:goto 标号标识符;需要注意的是,goto语句使用比较方便,但是容易引起逻辑上的混乱,因此除了在switch语句中必须从一个case跳到另一个case的情况下可以使用goto语句外,其他情况下最好不要使用goto语句。4) return 语句 return语句的功能是从它所在的子函数返回该子函数的调用者。格式:return 表达式;注意,此处的“”符号,表示其里面的表达式是可选的。不带表达式的return语句只有在不需要计算数值的子函数中出现,也就是,其返回类型为void。带表达式的return语句只能用在计算
47、数值的函数成员中,也就是其返回类型是非void。5)throw语句,它的作用是抛出异常11、 公共语言运行库(Common Language Runtime,CLR) 12、 NET Framework类库(Framework Class Library,FCL) 1)System.Object类2)异常处理Exception3)文件类System.IO 中包含用于在文件中读取和写入数据的类。System.IO.Directory 公开用于创建、移动和枚举目录和子目录的静态方法。System.IO.File 提供用于创建、复制、删除、移动和打开文件的静态方法。System.IO.Path 处理
48、路径名称。System.IO.DirectoryInfo公开用于创建、移动和枚举目录和子目录的实例方法。System.IO.FileInfo创建、复制、删除、移动和打开文件的实例方法System.IO.FileStream 以文件为主的 Stream,既支持同步读写操作,也支持异步读写操作。System.IO.StreamReader 从字节流中读取字符。System.IO.StringWriter 向流中写入字符。System.IO.FileSystemWatcher 侦听文件系统更改通知,并在目录或目录中的文件发生更改时引发事件。StreamReader,StreamWriter完成文件的
49、读写操作,String.Split()完成字符串的拆分。openFileDialog saveFileDialog 引用一个OpenFileDialog 对象.为检查用户在退出对话框时是否单击了”打开”按钮,应检查 对象.ShowDialog()的返回值是否等于 DialogResult.OK用FileStream打开一个文件时,可用FileMode参数控制4)图形类 Pen类的构造函数有四种,使用方法如下。(1)创建某一颜色的Pen对象:public Pen(Color)(2)创建某一刷子样式的Pen对象:public Pen(Brush)(3)创建某刷子样式并具有相应宽度的Pen对象:pu
50、blic Pen(Brush,float)(4)创建某一颜色和相应宽度的Pen对象:public Pen(Color,float) Pen对象的常用属性(1)Alignment属性:用来获取或设置此Pen对象的对齐方式。(2)Color属性:用来获取或设置此Pen对象的颜色。画椭圆 格式1:public void DrawEllipse( Pen pen, Rectangle rect); 格式2:public void DrawEllipse(Pen pen,int x,int y,int width, int height);(3) Width属性:用来获取或设置此Pen对象的宽度。画矩形
51、 格式1: public void DrawRectangle( Pen pen, Rectangle rect); 格式2:public void DrawRectangle(Pen pen,int x,int y,int width,int height);13、 异常处理都处理哪些错误,举例说明;异常(Exception)是程序执行时遇到的任何错误情况或意外行为。如除数为零、分配内存空间失败,都能引发异常。异常处理(Exception Handing)指的是一种机制或方法,通过它,用户创建的应用程序能够解决或处理异常。C#提供了一个标准类System.Exception,此类是所有异常的基类。基类 Exception 下存在两类异常:一个是从 SystemException派生的预定义公共语言运行库异常类,另一个是从 ApplicationExc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新解读《GB-T 32598-2016纺织品 色牢度试验 贴衬织物沾色的仪器评级方法》
- 多人投资合作协议书范本与多人股东合作协议书范本(一)5篇
- 新解读《GB-T 30952-2014水位试验台校验方法》
- 新解读《GB-T 31079-2014社区地震应急指南》
- 新解读《GB-T 31156-2014太阳能资源测量 总辐射》
- 建筑行业行业员工劳务承包合同5篇
- 车间工人安全合同范本
- 苗木工程合同范本
- 工厂服装加工合同范本
- 美菱空调采购合同范本
- 节能环保供货保证措施
- GB/T 23806-2025精细陶瓷断裂韧性试验方法单边预裂纹梁(SEPB)法
- 第2课 第二次鸦片战争 课件 部编版2024八年级上册历史
- 2025电化学储能生产指标管理办法
- 肿瘤患者心理抑郁护理
- 上班员工健康管理制度
- 整机测评报告模板范文
- 2025-2030年中国工程承包行业市场深度调研及竞争格局与投资前景研究报告
- 十个严禁考试题目及答案
- 2025至2030年中国聚氨酯医用材料行业市场研究分析及投资潜力研究报告
- cmmm考试题及答案
评论
0/150
提交评论