zoukankan      html  css  js  c++  java
  • c#中怎样实现当一个类实例的属性值改变时,触发事件调用另一个方法?

    using System; 
    namespace ConsoleApplication7 
    { 
          class Program 
          { 
                   static void Main(string[] args) 
                   { 
                              people p = new people("Name1"); 
                              p.PropertyChanged += new EventHandler(p_PropertyChanged);
                              //注册事件处理函数 
                              p.Name = "Name2"; Console.ReadKey(); 
                              
                   } 
                   
                   static void p_PropertyChanged(object sender, EventArgs e)
                   //事件的处理函数 
                   { 
                          Console.WriteLine("NamePropertyChanged:"+(sender as people).Name);                       
                   } 
          } 
          
          class people 
          { 
              public event EventHandler PropertyChanged; 
              private string name=String .Empty; 
              public people(string name) 
              { 
                  this.name = name; 
              } 
              public string Name 
              { 
                 get { return name; } 
                 set
                 { name = value;               
                   this.OnPropertyChanged(new EventArgs()); 
                   //每次改变Name值调用方法;            
                 } 
               } 
               
              private void OnPropertyChanged(EventArgs eventArgs) 
              { 
                 if (this.PropertyChanged != null)
                 //判断事件是否有处理函数 
                 { 
                     this.PropertyChanged(this, eventArgs); 
                 } 
              }
        } 
    } 

    //请参考
    从你写的程序来看    从类的外部是不可能改变属性的值了,因为你的这两个属性都是只读的,   只能在类的内部改变_a _b的值
    那样你写这个类的时候 你应该很清楚哪里改变了_a _b的值  真接调用相应的改变方法就行了
    所以你写的这个类 要让属性在类外部也能改变其值  不然属性值的改变只在类内部并触发事件也就没什么意义了

  • 相关阅读:
    CSS相关知识点
    嵌入式经典面试题
    代码阅读——十个C开源项目
    2020年3月编程语言排行
    C++题目
    英文符号对照大全
    详解Sort函数降序排序-c++
    C/C++语言学习资料,原创
    Bootstrap组件之响应式导航条
    Boostrap全局CSS样式
  • 原文地址:https://www.cnblogs.com/maijin/p/2838565.html
Copyright © 2011-2022 走看看