文件名称:扩展和使用CardLib-机器人学导论第三版课后习题答案
文件大小:14.06MB
文件格式:PDF
更新时间:2024-07-29 05:32:28
c#入门经典 第五版 高清 中文 文字版
13.4 扩展和使用CardLib 前面介绍了事件的定义和使用,现在就可以在 Ch13CardLib 中使用它们了。当使用 GetCard 获 得 Deck 对象中的 后一个 Card 对象时,就将引发的事件 LastCardDrawn 添加到该类库中。这个事 件允许订阅者 (subscriber)自动重新洗牌,停止客户要求的处理。为这个事件定义的委托 (LastCardDrawnHandler)需要为 Deck 对象提供一个引用。这样无论处理程序在什么地方,都可以访 问 Shuffle()方法。在 Deck.cs 中添加以下代码: 可从 wrox.com 下 载源代码 namespace Ch13CardLib { public delegate void LastCardDrawnHandler(Deck currentDeck); 代码段 Ch13CardLib\Deck.cs 定义和引发事件的代码比较简单,如下所示: public event LastCardDrawnHandler LastCardDrawn; ... public Card GetCard(int cardNum) { if (cardNum >= 0 && cardNum <= 51) { if ((cardNum == 51) && (LastCardDrawn != null)) LastCardDrawn(this); return cards[cardNum]; } else 343