博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C#基础概念通俗示例系列(1):事件的概念

Posted on 2008-05-30 02:29  熊掌  阅读(417)  评论(0编辑  收藏  举报
设定:目标:该例子主要通过模拟一个现实生活中的事情,来演示C#中【事件】的用法:
设定:张三和李四是好朋友,他们约定无论谁结婚,都要邀请对方作伴郎;
事情:张三结婚了,于是他按照约定要通知李四并邀请他来作伴郎。
代码如下: 
using System;
using System.Collections.Generic;
using System.Text;

namespace TestForFriends
{
    
/// <summary>
    
/// 目标:该例子主要通过模拟一个现实生活中的事情,来演示C#中【事件】的用法: 
    
/// 设定:张三和李四是好朋友,他们约定无论谁结婚,都要邀请对方作伴郎; 
    
/// 事情:张三结婚了,于是他按照约定要通知李四并邀请他来作伴郎。
    
/// </summary>
    class Program
    {
        
static void Main(string[] args)
        {
            Person 张三 
= new Person("张三");
            Person 李四 
= new Person("李四");

            
// 张三和李四是朋友
            张三.Friend = "李四";
            李四.Friend 
= "张三";

            
// 他们做约定
            张三.准备婚礼 += new EventHandler(李四.作为伴郎出席婚礼);
            李四.准备婚礼 
+= new EventHandler(张三.作为伴郎出席婚礼);

            
// 接触结婚事件
            张三.结婚();
        }
    }

    
/// <summary>
    
/// 人
    
/// </summary>
    public class Person
    {
        
// 姓名
        private string m_name;
        
// 朋友
        private string m_friend;

        
/// <summary>
        
/// 姓名
        
/// </summary>
        public string Name
        {
            
get { return m_name; }
        }

        
/// <summary>
        
/// 朋友
        
/// </summary>
        public string Friend
        {
            
get { return m_friend; }
            
set { m_friend = value; }
        }

        
/// <summary>
        
/// 准备结婚事件
        
/// </summary>
        public event EventHandler 准备婚礼;

        
/// <summary>
        
/// 构造函数
        
/// </summary>
        
/// <param name="name">人名</param>
        public Person(string name)
        {
            m_name 
= name;
        }

        
/// <summary>
        
/// 结婚
        
/// </summary>
        public void 结婚()
        {
            
if (null != 准备婚礼)
            {
                Console.WriteLine(
"{0}准备结婚,邀请朋友{1}当伴郎。", m_name, m_friend);
                准备婚礼(
thisnull);
                Console.WriteLine(
"{0}在朋友{1}的祝福中顺利结婚。", m_name, m_friend);
            }
        }

        
/// <summary>
        
/// 接受邀请,作为伴郎出席婚礼
        
/// </summary>
        
/// <param name="sender"></param>
        
/// <param name="e"></param>
        public void 作为伴郎出席婚礼(object sender, EventArgs e)
        {
            Console.WriteLine(
"{0} 接受朋友{1}邀请作为伴郎出席婚礼!",m_name, m_friend);
        }
    }
}
 
运行结果张三准备结婚,邀请朋友李四当伴郎。
李四 接受朋友邀请,作为张三的伴郎出席婚礼!
张三在朋友李四的祝福中顺利结婚。