예제 #1
0
        [TestMethod] // -----------------------------------------------------------------------
        public void TestMethod15()
        {
            訂閱者 農夫 = new 訂閱者()
            {
                字 = "農夫"
            };
            訂閱者 商人 = new 訂閱者()
            {
                字 = "商人"
            };
            訂閱者 騎士 = new 訂閱者()
            {
                字 = "騎士"
            };

            報社 王國日報 = new 報社();

            //訂閱
            王國日報.最新新聞 += 農夫.通知我;
            王國日報.最新新聞 += 商人.通知我;
            王國日報.最新新聞 += 騎士.通知我;

            string 消息1 = "魔王降臨啦!!!";

            王國日報.投稿新聞(消息1);
            string 消息2 = "勇者準備出發";

            王國日報.投稿新聞(消息2);

            王國日報.最新新聞.Invoke("假新聞"); // Q: 如何避免被發送假新聞?? A: event keyword
        }
예제 #2
0
        [TestMethod] // -----------------------------------------------------------------------
        public void TestMethod4()
        {
            訂閱者 農夫 = new 訂閱者()
            {
                字 = "農夫"
            };
            訂閱者 商人 = new 訂閱者()
            {
                字 = "商人"
            };
            訂閱者 騎士 = new 訂閱者()
            {
                字 = "騎士"
            };

            報社 王國日報 = new 報社();

            //訂閱
            王國日報.最新新聞 += 農夫.通知我;
            王國日報.最新新聞 += 商人.通知我;
            王國日報.最新新聞 += 騎士.通知我;

            string 消息1 = "魔王降臨啦!!!";

            王國日報.投稿新聞(消息1);
            string 消息2 = "勇者準備出發";

            王國日報.投稿新聞(消息2);

            // 王國日報.最新新聞.Invoke("假新聞"); // 保護: 多了event keyword, 讓delegate依然能被外部加入( += )方法,又能禁止被外部執行。
        }