计算机科学与技术NET框架程序设计梁爽课后习题答案.docx
- 文档编号:23112406
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:12
- 大小:67.26KB
计算机科学与技术NET框架程序设计梁爽课后习题答案.docx
《计算机科学与技术NET框架程序设计梁爽课后习题答案.docx》由会员分享,可在线阅读,更多相关《计算机科学与技术NET框架程序设计梁爽课后习题答案.docx(12页珍藏版)》请在冰豆网上搜索。
计算机科学与技术NET框架程序设计梁爽课后习题答案
课后习题
第2章
1、答:
AC
2、答:
值类型分配在堆栈上,通过拷贝赋值,通过值来传参。
引用类型分配在堆上,通过引用赋值,以引用传参。
(堆:
用于动态分配和释放程序所使用的对象)
3、答:
装箱和拆箱的概念是C#的类型系统的核心。
它在value-type和reference-type之间的架起了一座桥梁,使得任何value-type的值都可以转换为object类型的值,反过来转换也可以。
装箱和拆箱使我们能够统一地来考察类型系统,其中任何类型的值最终都可以按对象处理。
4、答:
C
5、答:
所谓泛型,即通过参数化类型来实现在同一份代码上操作多种数据类型。
泛型类型是一种编程范式,它利用“参数化类型”将类抽象化,从而实现更为灵活的复用。
即在定义时为一种抽象的数据类型,到具体使用的时候用什么类型实例化就是什么类型。
装箱和拆箱在数据量很大的时候实际上系统性能是非常低的,为了解决这个问题,在VS2005中提出了泛型的概念。
6、答:
如果要检查泛型列表中的某个项以确定它是否有效,或者将它与其他某个项进行比较,则编译器必须在一定程度上保证它需要调用的运算符或方法将受到客户端代码可能指定的任何类型参数的支持。
这种保证是通过对泛型类定义应用一个或多个约束获得的。
第3章
1、答:
把应用程序源代码经过编译器的编译转换成可以在cpu上直接运行的二进制编码,也就是机器语言。
2、答:
实时编译器just-in-time(JITcompiler
3、答:
Microsoft中间语言,或者托管代码。
编译器将源代码翻译为Microsoft中间语言(MSIL)这是一组可以有效地转换为本机代码且独立于CPU的指令。
MSIL包括用于加载、存储和初始化对象以及对对象调用方法的指令。
4、答:
元数据描述的是对应托管代码中定义的类型的信息,它与编译对应类型生成的MSIL存储在同一个文件中。
5.答:
可以适应更广泛的编译环境。
6.答:
元数据和程序集
8答:
元数据描述模块中包含的类型。
它为类型所存储的信息包括:
●类型名称。
●类型可见性,可以是公共的或程序集。
●此类型继承自哪个类型(如果存在的话)。
●该类型所实现的任何接口。
●该类型所实现的任何方法。
●该类型所公开的任何属性。
●该类型提供的任何事件。
11.答:
第4章
1、答:
System.CodeDom命名空间包含可以用于表示源代码文档的元素和结构的类。
System.Collections命名空间包含接口和类,这些接口和类定义各种对象(如列表、队列、位、数组、哈希表和字典)的集合。
System.ComponentModel命名空间提供用于实现组件和控件运行时和设计时行为的类。
System.Configuration命名空间包含提供用于处理配置数据的编程模型的类型,允许访问基于.NET框架的应用程序的配置信息。
System.Data命名空间提供对表示ADO.NET结构的类的访问。
System.Diagnostics命名空间提供特定的类,使您能够与系统进程、事件日志和性能计数器进行交互。
System.DirectoryServices命名空间用以从托管代码简便地访问ActiveDirectory。
System.Drawing命名空间提供了对GDI+基本图形功能的访问。
System.EnterpriseServices命名空间为企业应用程序提供重要的基础结构。
System.Globalization命名空间包含定义区域性相关信息的类,这些信息包括语言、国家/地区、使用的日历、日期、货币和数字的格式模式以及字符串的排序顺序。
我们可以使用这些类编写全球化(国际化)应用程序。
System.IO命名空间包含允许读写文件和数据流的类型以及提供基本文件和目录支持的类型。
System.Management提供对大量管理信息和管理事件集合的访问,这些信息和事件是与根据Windows管理规范(WMI结构对系统、设备和应用程序设置检测点有关的。
System.Media命名空间包含用于播放声音文件和访问系统提供的声音的类。
System.Messaging命名空间提供一些类,您可以使用这些类连接到、监视和管理网络上的消息队列,并发送、接收或查看消息。
System.Net命名空间为当前网络上使用的多种协议提供了简单的编程接口。
System.Reflection命名空间包含提供加载类型、方法和字段的有组织的视图的类和接口,具有动态创建和调用类型的功能。
System.Resources命名空间提供各种类和接口,这些类和接口使开发人员可以创建、存储和管理在应用程序中使用的不同特定于区域性的资源。
System.Runtime命名空间包含支持不同命名空间(如System、Runtime命名空间和Security命名空间)的高级类型。
System.Security命名空间提供公共语言运行库安全系统的基础结构,包括权限的基类。
System.ServiceProcess命名空间提供用于实现、安装和控制Windows服务应用程序的类。
System.Text命名空间包含表示ASCII、Unicode、UTF-7和UTF-8字符编码的类;用于将字符块转换为字节块和将字节块转换为字符块的抽象基类;以及操作和格式化String对象而不创建String的中间实例的Helper类。
System.Threading命名空间提供一些使得可以进行多线程编程的类和接口。
System.Timers命名空间提供Timer组件,它使您可以指定的间隔引发事件。
System.Transactions是NETFramework2.0版包含的一个新的事务框架,此框架公开事务的方式是完全集成在.NETFramework中,并包含ADO.NET。
System.Web命名空间提供使得可以进行浏览器与服务器通信的类和接口,可以说System.Web命名空间是.NET框架类库中最重要的命名空间,它包含的软件实现了ASP.NET。
System.Windows.Forms命名空间包含用于创建基于Windows的应用程序的类,以充分利用MicrosoftWindows操作系统中提供的丰富的用户界面功能。
System.Xml命名空间中的类用于处理XML文档。
2、答:
序列化工作由一个特定的格式器完成,每个格式器都提供Serialize和Deserialize方法。
.NET框架类库提供了两套不同的格式器,一个是二进制格式器(BinaryFormatter),实现于命名空间System.Runtime.Serialization.Formatters.Binary的BinaryFormatter类中,将对象序列化为一个“直截了当、形式精简、解析快速”的二进制格式。
另一个格式器是SOAP格式器,实现于命名空间System.Runtime.Serialization.Formatters.Soap中的类SoapFormatter,将一个对象序列化成为一个SOAP消息。
3、答:
反射通常可以这样来理解:
审查元数据并收集关于它的类型信息的能力。
元数据(编译以后的最基本数据单元)就是一大堆的表,当编译程序集或者模块时,编译器会创建一个类定义表,一个字段定义表,和一个方法定义表等。
4、答:
(1)使用Assembly定义和加载程序集,加载在程序集清单中列出模块,以及从此程序集中查找类型并创建该类型的实例。
(2)使用Module了解包含模块的程序集以及模块中的类等,还可以获取在模块上定义的所有全局方法或其他特定的非全局方法。
(3)使用ConstructorInfo了解构造函数的名称、参数、访问修饰符(如public或private)和实现详细信息(如abstract或virtual)等。
使用Type的GetConstructors或GetConstructor方法来调用特定的构造函数。
(4)使用MethodInfo了解方法的名称、返回类型、参数、访问修饰符(如pulic或private)和实现详细信息(如abstract或virtual)等。
使用Type的GetMethods或GetMethod方法来调用特定的方法。
(5)使用FiedInfo了解字段的名称、访问修饰符(如public或private)和实现详细信息(如static)等,并获取或设置字段值。
(6)使用EventInfo了解事件的名称、事件处理程序数据类型、自定义属性、声明类型和反射类型等,添加或移除事件处理程序。
(7)使用PropertyInfo了解属性的名称、数据类型、声明类型、反射类型和只读或可写状态等,获取或设置属性值。
(8)使用ParameterInfo了解参数的名称、数据类型、是输入参数还是输出参数,以及参数在方法签名中的位置等。
5、答:
XML阅读器的客户端收到一个指向阅读器实例的引用。
该实例提取底层的数据流并把取出的数据呈现为一棵XML树。
阅读器类提供只读、向前的游标,你可以用阅读器类提供的方法滚动游标遍历结果集中的每一条数据。
System.XML还包含XmlDocument类,提供了一个DOMAPI实现。
尽管使用XmlReader是访问XML文档信息的最快速方式,但XmlDocument类却更常被使用,因为它允许在一个文档中进行导航,可以随心所欲地向后或向前移动。
开发人员应该选择最合乎它需求的一种访问方式。
6、答:
事务的思想,即一组(两个或多个)操作作为一个单元成功或失败,是众多应用程序的基础。
这个概念本身简单:
所有操作要么全部成功,要么全部失败。
然而,由于软件可能会遭受无数的物理打击,要确保一组操作只能够得出这两种结果,根本没那么简单。
因此,.NETFramework提供了使创建事务性应用程序更为容易的服务。
使用System.Transactions控制事务性行为最简单的方法是使用TransactionScope类型的对象。
以下的代码描述了应用程序如何使用该类创建新事务,在其中执行操作,然后提交事务。
7、答:
组件化技术指的是利用组件技术来开发的那么一种方法。
什么是组件技术,它是组件化开发的核心。
组件是指我们可以用来重用,进行发布,进行部署的这么一种二进制代码单元。
组件技术就是来规定如何来定义这样一种代码单元的规范。
所以组件并不一定是遵循某种规范,组件它有一些很明显的特性和特征。
对组件来说,最重要的一个技术和一个特点,就是它定义了接口,就是如何来使用你的组件,组件内部定义了实现接口的方法。
但是接口的定义,通常来说在大多数组件技术当中都是和实现可以分离的,不是紧密地绑定在一起的。
那么通过组件技术我们就可以去解决编程当中两个很大的问题。
第一个是代码的重用,它非常方便来实现代码的重用。
第二个可以解决代码的部署,以组件为单元来部署应用程序,会比以前部署整个应用程序来得便利和灵活得多。
8、答:
一个所谓的GUI应用程序,会在屏幕上显示一个表单,然后等待用户输入。
这个输入一般通过消息循环进行处理,由它将输入传递到适当位置——一般作为一个或多个事件。
例如当用户点击按钮,或击键,或移动鼠标时,就会产生事件,发送到用户正在访问的表单中。
关联到表单上的代码会处理这些事件,可能将结果输出到屏幕上,也可能执行别的任务。
第5章
1、答:
System.Text.StringBuilder
2、答:
Array、ArrayList、StringCollection和TreeNodeCollection实现了IList接口。
3、答:
类型检查不能在编译时执行。
强制类型转换的性能开销。
对于值类型的集合,装箱与取消装箱的操作。
4、答:
C
5、答:
A
第6章
1、答:
B
2.答:
publicdelegateboolProcessOrderCallback(intQuantity,string,stringItem;
3、答:
delegatevoidMyDelegate(;
MyDelegatea,b;
a=newMyDelegate(Bar1.Foo1;
b=newMyDelegate(Bar2.Foo2;
a+=b;
4.答:
可以使用委托在委托对象的内部封装对方法的引用。
因为委托是类型安全的、牢靠的、托管的对象,所以它们提供了指针的所有优点,而没有指针的任何缺点。
例如,委托总是指向正确的对象,并且不会破坏其他对象的内存。
5、答:
publicstaticeventProcessOrderEventHandlerprocessOrderHandler;
6、.答:
在下面的情况下使用委托:
●需要C语言样式的函数指针
●需要单个回调函数
●希望注册在调用或构造时发生,而不是通过单独的add方法
在下面的情况下使用事件:
●客户端代码在事件发生前为回调函数注册,一般通过单独的add方法
●一个以上的客户端对象将受到影响
第7章
1、答:
B
2.答:
D
3.答:
C
4.答:
FileStream对文件进行读取和写入。
MemoryStream对内存进行读取和写入。
BufferedStream用于对另外一个流进行缓冲读取和写入。
NetworkStream为网络访问提供数据的基础流
5.答:
读取、写入和查找。
6.答:
BinaryReader和BinaryWriter。
7.答:
Seek。
8.答:
FileSystemWatcher。
9.答:
独立存储是一种数据存储机制,通过在代码和保存的数据之间定义了标准化的关联方式,从而提供隔离性和安全性。
当应用程序在文件中存储数据时,必须小心选择文件名和存储位置,最大程度地减小其他应用程序知道该存储位置的可能性。
因此,使数据不易受到损坏。
独立存储提供了管理下载Web应用程序文件来最大程度地减小存储冲突的手段。
通过独立存储,代码不再需要使用唯一路径来指定文件系统中的安全位置,就可以保护数据以防止未授权的访问。
不再需要指示应用程序的存储区域位置的硬代码信息。
通过独立存储,可以使部分受信任的应用程序以由计算机安全策略控制的方式存储数据。
10.答:
文件通常表示持久化保存在磁盘上的字符序列,它具有名称和路径;
而流是一个字符序列的抽象表示,它提供了一个向后备存储区(如磁盘或内存)中读取和写入字节的方法。
所有表示流的类都继承自Stream类。
Stream类和它的子类提供了对数据源和储存库的种类视图,并将程序员与操作系统和底层设备的具体细节隔离开。
第8章
1、答:
B
2、答:
D
3、答:
C
4、答:
A
5、答:
文本系统站点、本地IIS站点、远程IIS站点和文件传输协议(FTP)站点。
6、答:
一般存放在App_Code文件中,在该文件夹中存放进行编译的实用工具类和业务对象(例如.cs文件)的源代码或子文件夹。
在应用程序中将自动引用App_Code文件夹中的代码。
在动态编译的应用程序中,当对应用程序发出首次请求时,ASP.NET编译App_Code文件夹中的代码,以后如果检测到任何更改则重新编译该文件夹中的项。
7、答:
Page_Load事件。
在Page对象上载入服务器控件。
由于此时视图状态信息是可以使用的,因此在这里可以用代码来改变控件的设置或者在页面上显示文本。
8、答:
标准控件、数据控件、数据源控件、验证控件、导航控件、登录控件
9、答:
Application对象、Session对象、数据库支持
10、答:
查询字符串、隐藏域、状态视图、Cookies对象
11、答:
减少不必要的资源消耗。
提高CPU和内存的使用率。
12、答:
选择会话状态提供程序、避免不必要的服务器往返、在适当的环境中使用服务器控件、只有在必要时使用状态视图、不要依赖代码的异常处理、尽可能的使用自动垃圾回收、使用服务器端重定向、使用存储过程、使用DataReader、选择合适的控件、只要可能就使用缓存、使用ASP.NET缓存机制有两点需要注意、一定禁用调试模式
13、答:
输出缓存和数据缓存。
14、答:
Forms验证、Windows验证和Passport验证
第9章
1、答案D
2、答案C
3、答案A
4、答:
Datasource=(local;initialcatalog=Customer;uid=sa;wd=sql2005;
5、答:
调用有参的存储过程:
1创建连接对象并设置其连接字符串的属性
2)创建命令对象并设置其Connection、CommandText及CommandType属性。
3)创建参数对象并设置其属性,并将所有参数添加到命令对象的Parameters集合中
4)执行命令对象的方法
5)关闭相关对象。
调用无参存储过程时,只要去除第3步即可。
6、答:
数据适配器是数据搬运工,用来在数据集和数据源之间进行数据的填充和更新,可以把数据库当中的数据填充到数据集,并且可以把对数据集所做的更改更新回数据库。
填充:
当进行数据填充时,数据适配器设置其SelectCommand属性,用来获取数据,并调用Fill方法来将所获得数据填充到数据集。
更新:
进行更新时,数据适配器设置其InsertCommand,DeleteCommand及UpdateCommand属性,并调用数据适配器的Update方法,即可将其更改更新回数据源。
第10章
1、答:
通用描述、发现和集成(UDDI)项目是一个跨行业的项目,它致力于创建一个独立于平台的开放框架,用于描述Web服务、发现业务以及集成使用Internet的业务服务。
这个项目由所有的主要平台和软件提供商、市场经营者和电子商务领导者的驱动。
UDDI站点本身就是Web服务。
它们公布一对基于SOAP的API:
inquiryAPI用于查询公司和公司的Web服务,而publisherAPI用于广告某公司的Web服务。
任何人都可以调用inquiryAPI,但运行站点典型地限制发行人API给已注册成员。
2、答:
ASP.NET用.asmx文件提供对XMLWebservice的支持。
3、答:
Web服务描述语言工具(Wsdl.exe可以用于读取XMLWebservice的WSDL描述,并创建一个代理类。
客户端可以使用该代理类来调用XMLWebservice.方法。
4、答:
HTTP协议和SOAP协议
5、答:
创建Web服务项目
输入自己的代码
编译生成
6、答:
添加Web服务引用
访问Web服务对象
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机科学 技术 NET 框架 程序设计 课后 习题 答案