您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“C#自定義事件之屬性改變引發(fā)事件的示例分析”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“C#自定義事件之屬性改變引發(fā)事件的示例分析”這篇文章吧。
具體內(nèi)容如下
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication15 { class Program { static void Main(string[] args) { Monitor m = new Monitor(); m.PropertyChanging += new Monitor.EventHandler(m_PropertyChanging); m.Year = 2014; m.Year = 1890; m.Year = 2013; } static bool First=false; static void m_PropertyChanging(object sender, PropertyChangingEventArgs e) { if (First==false) { First = true; } else { if (e.NewValue < 1900 || e.NewValue > 3000) e.Cancel = true; } } } //(屬性正在改變的時(shí)候)事件數(shù)據(jù) class PropertyChangingEventArgs : EventArgs { //構(gòu)造函數(shù) public PropertyChangingEventArgs(string PropertyName, int OldValue, int NewValue) { _PropertyName = PropertyName; _OldValue = OldValue; _NewValue = NewValue; } //存儲(chǔ)數(shù)據(jù) private string _PropertyName; private int _OldValue; private int _NewValue; private bool _Cancel; //獲取或設(shè)置屬性 public string PropertyName { set { _PropertyName = value; } get { return _PropertyName; } } public int OldValue { set { _OldValue = value; } get { return _OldValue; } } public int NewValue { set { _NewValue = value; } get { return _NewValue; } } public bool Cancel { set { _Cancel = value; } get { return _Cancel; } } } class Monitor { //定義委托 public delegate void EventHandler(object sender, PropertyChangingEventArgs e); //定義事件 public event EventHandler PropertyChanging; //事件處理(用屬性方法) int _YearValue; public int Year { get { return _YearValue; } set { if (_YearValue != value) { if (PropertyChanging != null) { PropertyChangingEventArgs e = new PropertyChangingEventArgs("Year", _YearValue, value); PropertyChanging(this, e); if (e.Cancel) { return; } else { _YearValue = value; } } } } } } }
以上是“C#自定義事件之屬性改變引發(fā)事件的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。