c# – 如何引发使用“事件属性”定义的事件
发布时间:2020-12-15 17:21:01 所属栏目:百科 来源:网络整理
导读:我正在学习活动和代表现在开始了多个活动.只是文档没有提供任何信息或代码示例来提升以这种方式定义的事件.你可以找到一个简单的例子 示例代码 public class Person { private string _name; private string _phone; public string Name { get { return _nam
我正在学习活动和代表&现在开始了多个活动.只是文档没有提供任何信息或代码示例来提升以这种方式定义的事件.你可以找到一个简单的例子
示例代码 public class Person { private string _name; private string _phone; public string Name { get { return _name; } set { _name = value; } } public string Phone { get { return _phone; } set { _phone = value; } } protected EventHandlerList EventDelegateCollection = new EventHandlerList(); //define the event key static readonly object PhoneChangedEventKey = new object(); public event EventHandler PhoneChanged { add { EventDelegateCollection.AddHandler(PhoneChangedEventKey,value); } remove { EventDelegateCollection.RemoveHandler(PhoneChangedEventKey,value); } } } 我想在设置电话号码时举起活动.如果有什么听起来很时髦,不明白我在说什么see here 更新 我想在此澄清一些疑问.有两种方法可以实际订阅并调用事件处理程序,其中包含步骤的经典模式(as described here) >定义充当订阅方法的签名的委托. 事件属性是您在下面执行的另一种方式 >定义充当事件键的对象 解决方法
这就是你应该如何提高它
码 public class Person { private string _name; private string _phone; public string Name { get { return _name; } set { _name = value; } } public string Phone { get { return _phone; } set { _phone = value; //Invoke the Handlers now OnPhoneChanged(); } } protected EventHandlerList EventDelegateCollection = new EventHandlerList(); static readonly object PhoneChangedEventKey = new object(); public event EventHandler PhoneChanged { add { EventDelegateCollection.AddHandler(PhoneChangedEventKey,value); } remove { EventDelegateCollection.RemoveHandler(PhoneChangedEventKey,value); } } private void OnPhoneChanged() { EventHandler subscribedDelegates = (EventHandler)this.EventDelegateCollection[PhoneChangedEventKey]; subscribedDelegates(this,EventArgs.Empty); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |