项目八 第47练 委托《算法与程序设计--c#》(河北科学技术出版社)一课一练

| 2份
| 6页
| 65人阅读
| 0人下载

内容正文:

编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《算法与程序设计—C#》(河北科学技术出版社)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。 本卷是《算法与程序设计--c#》(河北科学技术出版社)一课一练的项目八的第5练,内容涵盖项目八任务五 委托。 《算法与程序设计C#》(河北科学技术出版社)第47练 项目八 C#面向对象编程 任务五 委托 1、 单项选择题(本题共5小题) 1.在C#中,委托是( ) A. 一种特殊的类,用于存储方法的引用 B. 一种用于声明变量的关键字 C. 一种循环结构 D. 一种异常处理机制 【答案】A 【解析】委托是C#中的一种类型,它类似于函数指针,可以存储对方法的引用。虽然它用关键字"delegate"声明,但它本质上是一种特殊的类,能够引用具有特定签名的方法。 2.下面哪个关键字用于声明委托( ) A. class B. delegate C. method D. function 【答案】B 【解析】在C#中,使用"delegate"关键字来声明委托类型,就像使用"class"声明类一样。"method"和"function"不是C#的关键字。 3.以下哪个是正确声明委托的方式( ) A. public int MyDelegate(string s); B. public delegate int MyDelegate(string s); C. public delegate MyDelegate(int s); D. public int delegate MyDelegate(string s); 【答案】B 【解析】正确的委托声明语法是:访问修饰符 + delegate关键字 + 返回类型 + 委托名 + 参数列表。选项B完全符合这个语法结构。 4.如何将方法赋值给委托变量( ) A. 使用=运算符 B. 使用new关键字 C. 使用+=运算符 D. 使用=>运算符 【答案】A 【解析】最简单的方式是使用=运算符直接将方法赋值给委托变量。虽然也可以使用new关键字创建委托实例(如new DelegateType(Method)),但=运算符更简洁。+=用于多播委托,=>用于lambda表达式。 5.下面代码的输出结果是( ) delegate void SimpleDelegate(); class Program { static void Main() { SimpleDelegate del = new SimpleDelegate(SayHello); del(); } static void SayHello() { Console.WriteLine("你好!"); } } A. 编译错误 B. 运行时错误 C. 输出"你好!" D. 没有输出 【答案】C 【解析】这段代码首先定义了一个无参数无返回值的委托SimpleDelegate,然后在Main方法中创建了该委托的实例del,并将SayHello方法赋值给它。当调用del()时,实际上就是调用了SayHello方法,因此会输出"你好!" 2、 填空题(本题共5小题) 1.在 C# 中,委托是一种特殊的______,它可以存储对方法的引用。 【答案】类 【解析】虽然委托使用delegate关键字声明,但在.NET框架中,委托实际上是一种特殊的类(System.Delegate的派生类)。它不仅能存储方法引用,还能存储调用该方法的对象实例(如果是实例方法的话)。 2.要声明一个委托,需要使用关键字______。 【答案】delegat 【解析】在C#中,声明委托类型必须使用delegate关键字,格式为:访问修饰符 delegate 返回类型 委托名(参数列表);。这与类声明使用class关键字类似。 3.要将方法赋值给委托变量,可以使用______运算符(填写一个运算符)。 【答案】= 【解析】最简单的委托赋值方式是使用=运算符,例如:MyDelegate del = MyMethod;。虽然也可以用new关键字(如del = new MyDelegate(MyMethod)),但直接赋值更简洁。 4.如果希望一个委托变量可以引用多个方法,可以使用______运算符来添加方法。 【答案】+= 【解析】委托支持多播(Multicast),使用+=可以添加方法,-=可以移除方法。调用时,这些方法会按添加顺序依次执行。例如:del += Method1; del += Method2;,调用del()时会先后执行Method1和Method2。 5.如果 del 是一个委托变量,那么可以通过______来调用它所引用的方法。 【答案】del() 【解析】委托变量可以像方法一样被调用,使用del()的形式。如果委托有参数,就在括号内传入参数,如del(5)。这与普通方法调用方式完全一致。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $ 编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《算法与程序设计—C#》(河北科学技术出版社)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。 本卷是《算法与程序设计--c#》(河北科学技术出版社)一课一练的项目八的第5练,内容涵盖项目八任务五 委托。 《算法与程序设计C#》(河北科学技术出版社)第47练 项目八 C#面向对象编程 任务五 委托 1、 单项选择题(本题共5小题) 1.在C#中,委托是( ) A. 一种特殊的类,用于存储方法的引用 B. 一种用于声明变量的关键字 C. 一种循环结构 D. 一种异常处理机制 2.下面哪个关键字用于声明委托( ) A. class B. delegate C. method D. function 3.以下哪个是正确声明委托的方式( ) A. public int MyDelegate(string s); B. public delegate int MyDelegate(string s); C. public delegate MyDelegate(int s); D. public int delegate MyDelegate(string s); 4.如何将方法赋值给委托变量( ) A. 使用=运算符 B. 使用new关键字 C. 使用+=运算符 D. 使用=>运算符 5.下面代码的输出结果是( ) delegate void SimpleDelegate(); class Program { static void Main() { SimpleDelegate del = new SimpleDelegate(SayHello); del(); } static void SayHello() { Console.WriteLine("你好!"); } } A. 编译错误 B. 运行时错误 C. 输出"你好!" D. 没有输出 2、 填空题(本题共5小题) 1.在 C# 中,委托是一种特殊的______,它可以存储对方法的引用。 2.要声明一个委托,需要使用关键字______。 3.要将方法赋值给委托变量,可以使用______运算符(填写一个运算符)。 4.如果希望一个委托变量可以引用多个方法,可以使用______运算符来添加方法。 5.如果 del 是一个委托变量,那么可以通过______来调用它所引用的方法。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $

资源预览图

项目八  第47练  委托《算法与程序设计--c#》(河北科学技术出版社)一课一练-第1页
1

由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。