C#如何定义一个事件,实现事件的调用

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  
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的值  真接调用相应的改变方法就行了 
所以你写的这个类 要让属性在类外部也能改变其值  不然属性值的改变只在类内部并触发事件也就没什么意义了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值