一、创建一个类并添加属性和字段
public class Test
{
private int _ZiDuan = 0;//字段
public int ZiDuan //属性
{
get { return _ZiDuan; }
set { _ZiDuan = Value }
}
}
二、添加委托和事件,委托和类同级
public delegate void tempChange(int A);//委托
public class Test
{
public event tempChange onTempChange;//事件
private int _ZiDuan = 0;
public int ZiDuan
{
get { return _ZiDuan; }
set { _ZiDuan = Value }
}
}
三、每当改变类的属性时都会执行属性中的set方法
四、在类的set方法中添加事件
public delegate void tempChange(int A);//委托
public class Test
{
public event tempChange onTempChange;//事件
private int _ZiDuan = 0;
public int ZiDuan
{
get { return _ZiDuan; }
set
{
if (_ZiDuan != value)//如果设置的值不等于字段则会触发事件,触发完事件之后将值设置到字段中
{
onTempChange(1);
}
_ZiDuan = value;
}
}
}
五、在类的构造方法中给事件绑定方法
public delegate void tempChange(int A);//委托
public class Test
{
public event tempChange onTempChange;//事件
private int _ZiDuan = 0;
public int ZiDuan
{
get { return _ZiDuan; }
set
{
if (_ZiDuan != value)//如果设置的值不等于字段则会触发事件,触发完事件之后将值设置到字段中
{
onTempChange(1);
}
_ZiDuan = value;
}
}
public Test()
{
onTempChange += FangFa;
}
}
六、写一个要绑定的方法FangFa
public delegate void tempChange(int A);//委托
public class Test
{
public event tempChange onTempChange;//事件
private int _ZiDuan = 0;
public int ZiDuan
{
get { return _ZiDuan; }
set
{
if (_ZiDuan != value)//如果设置的值不等于字段则会触发事件,触发完事件之后将值设置到字段中
{
onTempChange(1);
}
_ZiDuan = value;
}
}
public Test()
{
onTempChange += FangFa;
}
public void FangFa(int B)
{
MessageBox.Show("属性被改变");
}
}
七、测试该功能,在窗口创建一个按钮,在按钮点击事件中实例化这个类,并且改变该类的属性
private void button7_Click(object sender, EventArgs e)
{
Test test = new Test();
test.ZiDuan = 2;
}
public delegate void tempChange(int A);
public class Test
{
public event tempChange onTempChange;
private int _ZiDuan = 0;
public int ZiDuan
{
get { return _ZiDuan; }
set
{
if (_ZiDuan != value)
{
onTempChange(1);
}
_ZiDuan = value;
}
}
public Test()
{
onTempChange += FangFa;
}
public void FangFa(int B)
{
MessageBox.Show("属性被改变");
}
}
C#:实现类的某一个属性的值变化时触发事件
最新推荐文章于 2024-05-02 16:15:46 发布