c# – 70-536考试中的多播代表?
我正在阅读70-536考试的一些考题,一个开发人员在他的博客上发布的实际问题已经出现在我的考试题目中.我不记得他的回答是什么……但下面是一个问题:
您需要编写一个接受DateTime参数并返回bool的多播委托 答:公共委托int PowerDeviceOn(bool,DateTime) B:公共委托bool PowerDeviceOn(Object,EventArgs) C:public delegate void PowerDeviceOn(DateTime) D:公共代表bool PowerDeviceOn(DateTime) 答案是A. 有人可以解释一下原因吗?因为我已经对此做了一些研究 这个问题的变体: 您需要编写一个接受DateTime参数的多播委托. 答:公共委托int PowerDeviceOn(bool,EventArgs) C:public delegate void PowerDeviceOn(DateTime) D:公共代表bool PowerDeviceOn(DateTime) 现在这是这个问题的另一个变种,它仍然有相同的虚假样本答案,因为他们仍然善于将考试者甩掉.请注意如何通过简单地保持样本答案相同并通过删除问题文本的一小部分,答案是C而不是A. 这个变化没有正式答案,因为我只是用考试问题作为底板来构思它.答案肯定是C.这一次很容易看出为什么C是正确的,但是第一个问题我有一个问题,但是你知道在通过考试时不够好. 解决方法
这不是一个措辞很好的问题.多播委托是指将单独的委托合并为一个委托:
delegate int Foo(); Foo a = () => 5; Foo b = () => 9; Foo c = a + b; // c is a multicast delegate 当你调用c时,它会调用a,然后调用b.它返回调用的最后一个委托的返回值,因此c的返回值为9. 在我看来,答案应该是 public delegate void PowerDeviceOn(DateTime d,CancelEventArgs e) 如果委托指向的方法之一想要告诉你“假”,则应将e.Cancel设置为true.委托不能只返回一个布尔值,因为那样你只能获得最后一个委托的答案. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |