当前位置:
文档之家› C#面向对象编程 委托和事件习题
C#面向对象编程 委托和事件习题
7>以下关于 C#代码的说法正确的是(). Public delegate void SendMailDelegate(string address); Public class Carrier{ Public event SendMailDelegate sendEvent; Static void Main(){ Carrier t = new Carrier(); //1
4.阅读以下 C#代码 Namespace tevent { public delegate void notify5();
class eventTest {
public void Raise5(int I) {
if(I%3==1) Got5();
}
public event notify5 Got5; } class3;= new SendMailDelegate(t_sendEvent);//2 t.sendEvent(“北大青鸟啊博泰克”); //3 t_sendEvent(“北大青鸟啊博泰克”); //4 } Private static void t_sendEvent(string address){
int y=cnt*2+1; eObj.Raise5(y); } Console.WriteLine(); } } 代码允许的结果为()。(选择一项) A)控制台窗口不能出任何信息。 B)在控制台窗口输出“时间处理完成”1 次 C)在控制台窗口输出“时间处理完成”2 次 D)在控制台窗口输出“时间处理完成”5 次
C#面向对象编程-委托和事件
1.一个委托在某一时刻()指向多个方法。 a)可以 b)不可以
2.将事件通知其他对象的对象称为() a)发布方 b)订户 c)通知方
3.以下的 C#代码: using System; using System.Theading; class App{ Public static void Main() { Timer timer = new Timer(new TimerCallback(CheckStatus),null,0,2000); Console.Read(); } Static void CheckStatus(Object state) { Console.WriteLine(“正在运行检查……”); } } 在使用代码创建定时器对象的时候,同时指定了定时器的事件,程序运行时将每隔两秒 钟打印一行“正在运行检查……”,因此,TimerCallback 是一个( )选一项 a) 委托 b) 结构 c) 函数 d) 类名
5.一个委托在某一时刻()指向多个方法。 A. 可以 B. 不可以
6.将事件通知其他对象的对象称为() A. 发布方 B. 订户 C. 通知方
7.声明一个委托 public delegate int myCallBack(int x); 则用该委托产生的回调方法的 原型应该是() A. void myCallBack(int x) B. int receive(int num) C. string receive(int x) D. 不确定的
A(21); } Public static void R(int i){
Console.write(i.ToString()); } } a) 代码中存在错误,delegate void D(int i);不能定义在命名空间或者类之外 b) 代码中存在错误,代码行 V(new D(R));使用委托错误 c) 程序正常运行,输出为 0 d) 程序正常运行,输出为 210
a) public delegate MessageDelegate messageEvent b) public MessageDelegate messageEvent c) private event MessageDelegate(messageEvent) d) public event MessageDelegate messageEvent;
Console.WriteLine(“将信寄往”+address); } } a) 代码正确编译和运行,并输出一次“将信寄往北大青鸟阿博泰克”; b) 代码正确编译和运行,并输出两次“将信寄往北大青鸟阿博泰克”; c) 代码将出现编译错误, d) 代码将编译正确,但运行时出现异常。
9>在 C#中,假如有一个名为”MessageDelegate”的委托,下列能够正确定义 一个事件的是()
46) 在 C#中,下列代码的运行结果是()(选择一项) Using System; Delegate void D(int i); Class P{
Public static void Main(){ V(new D(R)); Console.Write(0);
} Public static void V(D A){
public static void Method1() {
Console.WriteLine("时间处理完成"); } } class class10 { static void Main(String[] args) {
eventTest eObj=new eventTest(); eObj.Got5+=new notify5(Handlers.Method1); for(int cnt=0;cnt<5;cnt++) {
8.C#中,关于事件的定义正确的是()。 a)private event OnClick(); b)private event OnClick; c)public delegate void Click();public event Click void OnClick(); d)public delegate void Click();public event Click OnClick;
1> 在 C#中,下列代码的运行结果是(). Public delegate void BuyTicketDelegate(string num); Public class Student { Public event BuyTicketDelegate btEvent; Public Student(string num) { btEvent+= new BuyTicketDelegate(this.BuyTicket); } Public void ShowNum(string num) { btEvent(num); } Private void BuyTicket(string num) { Console.WriteLine(“我要买”+num+”次车票”); } Static void Main() { Console.WriteLine(“创建学生对象”); Student stu = new Student(“TI”); Console.WriteLine(“创建完毕”); Stu.ShowNum(“TI”); } } a) 创建学生对象 创建完毕 b) 创建学生对象 我要买 TI 次车票 创建完毕 c) 创建学生对象 创建完毕 我要买 TI 次车票 d) 我要买 TI 次车票 创建学生对象 创建完毕