项目八 第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 是一个委托变量,那么可以通过______来调用它所引用的方法。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$