全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

C#自定义事件之属性改变引发事件示例

本文实例为大家分享了C#属性改变引发事件示例的具体代码,供大家参考,具体内容如下

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;
   }
  }
 }

 //(属性正在改变的时候)事件数据
 class PropertyChangingEventArgs : EventArgs
 {
  //构造函数
  public PropertyChangingEventArgs(string PropertyName, int OldValue, int NewValue)
  {
   _PropertyName = PropertyName;
   _OldValue = OldValue;
   _NewValue = NewValue;
  }

  //存储数据
  private string _PropertyName;
  private int _OldValue;
  private int _NewValue;
  private bool _Cancel;

  //获取或设置属性
  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#  # 事件  # 属性  # C#自定义事件模拟风吹草摇摆效果  # 在C#使用字典存储事件示例及实现自定义事件访问器  # C#自定义事件监听实现方法  # C#自定义事件及用法实例  # C#中自定义事件和委托实例  # asp.net中c#自定义事件的实现方法详解  # c#在程序中定义和使用自定义事件方法总结  # 大家分享  # 具体内容  # 大家多多  # Main  # string  # args  # Program  # static  # void  # Monitor  # Year  # PropertyChanging  # EventHandler  # m_PropertyChanging  # class  # brush  # csharp  # bool  # null  # pre 


相关文章: 如何通过PHP快速构建高效问答网站功能?  c# F# 的 MailboxProcessor 和 C# 的 Actor 模型  测试制作网站有哪些,测试性取向的权威测试或者网站?  黑客入侵网站服务器的常见手法有哪些?  小说建站VPS选用指南:性能对比、配置优化与建站方案解析  网站制作知乎推荐,想做自己的网站用什么工具比较好?  如何零基础开发自助建站系统?完整教程解析  如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法  如何实现建站之星域名转发设置?  如何通过智能用户系统一键生成高效建站方案?  如何访问已购建站主机并解决登录问题?  一键制作网站软件下载安装,一键自动采集网页文档制作步骤?  如何在IIS中新建站点并解决端口绑定冲突?  宝塔新建站点报错如何解决?  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  如何快速生成橙子建站落地页链接?  香港服务器网站卡顿?如何解决网络延迟与负载问题?  建站主机选哪种环境更利于SEO优化?  详解jQuery中基本的动画方法  建站之星3.0如何解决常见操作问题?  大连网站设计制作招聘信息,大连投诉网站有哪些?  b2c电商网站制作流程,b2c水平综合的电商平台?  韩国服务器如何优化跨境访问实现高效连接?  如何快速上传自定义模板至建站之星?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  建站之星收费标准详解:套餐费用及年费价格表一览  官网自助建站平台指南:在线制作、快速建站与模板选择全解析  建站之星24小时客服电话如何获取?  建站之星后台搭建步骤解析:模板选择与产品管理实操指南  如何通过免费商城建站系统源码自定义网站主题与功能?  如何通过二级域名建站提升品牌影响力?  魔方云NAT建站如何实现端口转发?  高性能网站服务器配置指南:安全稳定与高效建站核心方案  建站之星下载版如何获取与安装?  如何配置支付宝与微信支付功能?  公司网站制作需要多少钱,找人做公司网站需要多少钱?  网站制作报价单模板图片,小松挖机官方网站报价?  Android自定义控件实现温度旋转按钮效果  宝塔新建站点为何无法访问?如何排查?  如何选择适合PHP云建站的开源框架?  如何在建站之星绑定自定义域名?  C#如何使用XPathNavigator高效查询XML  如何在Windows虚拟主机上快速搭建网站?  定制建站方案优化指南:企业官网开发与建站费用解析  沈阳制作网站公司排名,沈阳装饰协会官方网站?  网站图片在线制作软件,怎么在图片上做链接?  如何在阿里云完成域名注册与建站?  做企业网站制作流程,企业网站制作基本流程有哪些?  如何选择高效便捷的WAP商城建站系统?  常州自助建站:操作简便模板丰富,企业个人快速搭建网站 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。