1. 首页
  2. 课程学习
  3. .Net
  4. 扩展和使用CardLib-机器人学导论第三版课后习题答案

扩展和使用CardLib-机器人学导论第三版课后习题答案

上传者: 2024-07-27 10:03:27上传 PDF文件 14.06MB 热度 8次

13.4 扩展和使用CardLib

前面介绍了事件的定义和使用,现在就可以在Ch13CardLib中使用它们了。当使用GetCard获得Deck对象中的最后一个Card对象时,将引发的事件LastCardDrawn添加到该类库中。这一事件允许订阅者自动重新洗牌,或停止客户要求的处理。为这个事件定义的委托(LastCardDrawnHandler)需要为Deck对象提供一个引用。这样无论处理程序在什么地方,都可以访问Shuffle()方法。

在Deck.cs中添加以下代码:


namespace Ch13CardLib {

    public delegate void LastCardDrawnHandler(Deck currentDeck);

}

Ch13CardLibDeck.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 {

        // 错误处理逻辑

    }

}

想了解更多关于C#事件处理的详细内容和示例,可以参考以下资源:

这些资源将帮助你更好地理解和应用事件处理机制,让你的编程更具灵活性和应变能力。想象一下,当你的代码可以自动处理复杂的逻辑,而你只需要专注于核心功能,那该有多么轻松!如果你还有疑问或者想更深入地探讨这个话题,不妨去阅读这些资源,相信你会有更多的收获。

用户评论