C#中实现当一个类实例的属性值改变时,触发事件调用另一个方法

/*
 *
 * 用户: Changweihua
 * 日期: 2012/11/9
 * 时间:  13:20
 * 邮箱: changweihua@outlook.com
 * 博客: http://www.cmono.net
 * 
 * 描述:
 *      C#中实现当一个类实例的属性值改变时,触发事件调用另一个方法
 * 
 *
 * 修改:
 *
 *
 * 不足:
 *
 */
using System;

namespace Console4
{
    class Program
    {
        public static void Main(string[] args)
        {
            Person p = new Person("name1");
            p.PropertyChanged += delegate(object sender, EventArgs e) { Console.WriteLine("NamePropertyChanged:" + (sender as Person).Name); };
            p.PropertyChanged += (object sender, EventArgs e) => { Console.WriteLine("NamePropertyChanged:" + e.ToString()); };
            p.Name = "name2";
            Console.ReadKey(true);
        }
    }
    
    class Person
    {
        //事件名
        public event EventHandler PropertyChanged;
        private string name = string.Empty;
            
        public Person(string name)
        {
            this.name = name;
        }   
        
        public string Name
        {
            get
            {
                return name;
            }
            set
            {
                name = value;
                this.OnPropertyChanged(new EventArgs());//每次修改Name时调用
            }
        }
        
        private void OnPropertyChanged(EventArgs e)
        {
            if(this.PropertyChanged != null)//判断事件是否有处理函数
            {
                this.PropertyChanged(this, e);
            }
        }
        
    }
    
}

知识共享许可协议
《C#中实现当一个类实例的属性值改变时,触发事件调用另一个方法》常伟华 创作。
采用 知识共享 署名-相同方式共享 3.0 中国大陆 许可协议进行许可。
相邻依据:发表时间
  • 多说评论
  • 签名
  • 新浪微博
  • 默认评论
  • Tab Header 5

1 条评论 / 点击此处发表评论

Tab Content 5

开发技术


开发平台和工具

sitemap     161.04ms