C#自定义事件之属性改变引发事件示例
本文实例为大家分享了C#属性改变引发事件示例的具体代码,供大家参考,具体内容如下
usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; namespaceConsoleApplication15 { classProgram { staticvoidMain(string[]args) { Monitorm=newMonitor(); m.PropertyChanging+=newMonitor.EventHandler(m_PropertyChanging); m.Year=2014; m.Year=1890; m.Year=2013; } staticboolFirst=false; staticvoidm_PropertyChanging(objectsender,PropertyChangingEventArgse) { if(First==false) { First=true; } else { if(e.NewValue<1900||e.NewValue>3000) e.Cancel=true; } } } //(属性正在改变的时候)事件数据 classPropertyChangingEventArgs:EventArgs { //构造函数 publicPropertyChangingEventArgs(stringPropertyName,intOldValue,intNewValue) { _PropertyName=PropertyName; _OldValue=OldValue; _NewValue=NewValue; } //存储数据 privatestring_PropertyName; privateint_OldValue; privateint_NewValue; privatebool_Cancel; //获取或设置属性 publicstringPropertyName { set { _PropertyName=value; } get { return_PropertyName; } } publicintOldValue { set { _OldValue=value; } get { return_OldValue; } } publicintNewValue { set { _NewValue=value; } get { return_NewValue; } } publicboolCancel { set { _Cancel=value; } get { return_Cancel; } } } classMonitor { //定义委托 publicdelegatevoidEventHandler(objectsender,PropertyChangingEventArgse); //定义事件 publiceventEventHandlerPropertyChanging; //事件处理(用属性方法) int_YearValue; publicintYear { get { return_YearValue; } set { if(_YearValue!=value) { if(PropertyChanging!=null) { PropertyChangingEventArgse=newPropertyChangingEventArgs("Year",_YearValue,value); PropertyChanging(this,e); if(e.Cancel) { return; } else { _YearValue=value; } } } } } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。