- 1、本文档共57页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
测绘《VisualC#程序设计》复习思考题剖析
一 选择题(35)
(1) 下面是关于委托实例的描述,不正确的有哪些? (D)
A委托(delegate)实例可以认为是这样的对象,它包含具有相同签名和返回值类型的有序方法列表方法的列表称为调用列表(invocation list)
B当委托实例被调用时,它调用列表中的每一个方法;
C由委托实例保存的方法可以来自任何类或结构,只要它们同时匹配委托的返回值和签名(包括ref和out修饰符)
D调用列表中的方法可以是实例方法,不可以是静态方法。
(2) 下面是关于委托类型的描述,不正确的有哪些? (D)
A委托是类型,委托类型必须在被用来创建变量以及类型的之前声明
B委托类型声明和所有类型声明一样,不需要在类的内部声明;
C委托类型的声明看上去与方法的声明很相似,有返回类型和签名返回类型和签名指定了委托接受的方法的形式
D委托类型的声明delegate关键词开头有方法主体。
(3)(B)
A委托是引用类型,因此有引用和对象在委托类型声明之后,可以声明变量并创建类型的对象
B可以使用带new运算符的对象创建表达式创建委托对象new运算符的操作数委托类型名一组括号包含作为调用列表中第一个成员的方法的名字组成
C可以使用快捷语法创建委托对象,它仅由方法说明符构成,使用快捷语法是因为在方法名称和其相应的委托类型之间有隐式转换
D除了为委托分配内存,创建委托对象还会把第一个方法放入委托的调用列表。
(4) 下面是关于委托对象操作的描述,不正确的有哪些? (B)
A由于委托是引用类型,我们可以通过给它赋值来改变包含在委托变量中的引用旧的委托对象会被垃圾回收器回收
B委托可以使用运算符来“组合这个运算最终会创建一个新的委托,其调用列表是两个操作数的委托调用列表的副本的组合
C尽管术语组合委托(combining delegate)让我们觉得好像操作数委托被修改了,其实它们并没有被修改,委托是恒定的委托对象被创建后不会再被改变
D我们可以通过使用+=运算符来为委托增加方法或另一个委托
E我们还可以使用-=运算符从委托移除方法或一个委托。
(5)(C)
A可以像调用方法一样简单地调用委托
B用于调用委托的参数将会用于调用列表中的每一个方法(输出参数);
C一个方法可以在调用列表中出现多次,当委托对象被调用时,这个方法只会被调用一次;
D如果委托有返回值并且在调用列表中有一个以上的方法,调用列表中最后一个方法返回的值就是委托调用返回的值,调用列表中所有其他方法的返回值都会被忽略;
E如果委托有引用参数,参数值会根据调用列表中的一个或多个方法的返回值而改变,在调用委托列表中的下一个方法时,参数的新值(不是初始值)会传给下一个方法
(6) 下面是关于事件(B)
A委托类型声明--事件和事件处理程序必须有共同的签名和返回类型,它们通过委托类型声明进行描述;
B事件处理程序声明--这些在订阅者类中的方法(事件处理程序)会在事件触发时被执行它们需要有独立的方法,它们可以是匿名方法或lambda表达式
C事件声明--事件发布者类中的声明,用来保存并调用事件处理程序;
D事件注册--这段代码把事件处理程序添加到事件中;
E触发事件的代码--发布者类中的这段代码,用来调用事件处理程序。
(7) 下面是关于事件(D)
A发布者类必须提供事件和触发事件的代码;
B创建事件比较简单——只需要委托类型和名字;
C可以通过使用逗号分隔的列表在一个声明语句中声明一个以上的事件;
D不可以使用static关键字让事件变成静态的
(8) 下面是关于事件(C)
A一个常见的误解是把事件认为是类型,然而它不是事件是成员,我们不能使用对象创建表达式(new表达式)来创建它的对象
B事件必须声明在类或结构中,和其他成员一样;
能在一段可执行代码中声明事件;
事件成员被隐式自动初始化为null。
() 下面是关于触发和订阅事件的描述,不正确的有哪些? (D)
A在触发事件之前和null进行比较,从而查看是否包含任何事件处理程序,如果事件是null,则表示没有
B触发事件使用事件名称,后面跟的参数列表包含在圆括号中,参数列表必须匹配事件的委托类型;
C使用+=运算符来为事件增加事件处理程序
D事件处理程序实例方法静态方法匿名方法lambda表达式
(10) 下面是关于接口的描述,不正确的有哪些? (C)
A接口是表示一组函数成员而不实现成员的引用类型,其他类型——类和结构可以实现接口;
B类或结构要实现接口必须在基类列表后面列出接口名称,必须为接口的每一个成员提供实现;
C接口声明可以包含数据成员;
D接口声明只能包含方法属性事件索引
(11) 下面是关于接口的描述,不正确的有哪些? (D)
A接口成员的声明不能包含任何实现代码,而在每一个成员声明的主体后必须使用分号
B和类以及
文档评论(0)