[TestMethod] // ----------------------------------------------------------------------- public void TestMethod15() { 訂閱者 農夫 = new 訂閱者() { 字 = "農夫" }; 訂閱者 商人 = new 訂閱者() { 字 = "商人" }; 訂閱者 騎士 = new 訂閱者() { 字 = "騎士" }; 報社 王國日報 = new 報社(); //訂閱 王國日報.最新新聞 += 農夫.通知我; 王國日報.最新新聞 += 商人.通知我; 王國日報.最新新聞 += 騎士.通知我; string 消息1 = "魔王降臨啦!!!"; 王國日報.投稿新聞(消息1); string 消息2 = "勇者準備出發"; 王國日報.投稿新聞(消息2); 王國日報.最新新聞.Invoke("假新聞"); // Q: 如何避免被發送假新聞?? A: event keyword }
[TestMethod] // ----------------------------------------------------------------------- public void TestMethod4() { 訂閱者 農夫 = new 訂閱者() { 字 = "農夫" }; 訂閱者 商人 = new 訂閱者() { 字 = "商人" }; 訂閱者 騎士 = new 訂閱者() { 字 = "騎士" }; 報社 王國日報 = new 報社(); //訂閱 王國日報.最新新聞 += 農夫.通知我; 王國日報.最新新聞 += 商人.通知我; 王國日報.最新新聞 += 騎士.通知我; string 消息1 = "魔王降臨啦!!!"; 王國日報.投稿新聞(消息1); string 消息2 = "勇者準備出發"; 王國日報.投稿新聞(消息2); // 王國日報.最新新聞.Invoke("假新聞"); // 保護: 多了event keyword, 讓delegate依然能被外部加入( += )方法,又能禁止被外部執行。 }