C# 如何定义自己的事件

来源:百度知道 编辑:UC知道 时间:2024/05/21 22:43:23
自己定义一个类,里面有一个字段,当这个字段的值发生改变时就调用某个方法,要怎么做啊?

楼上这个思路很不错,只是差了一点,补充下:
set
{
if(item != value)
{
// do something you want
}
item = value;
}
当然了,c#中事件是和委托相关联的,举例如下:
public delegate void LoginEvent(object sender, LoginResponseEvent e);
public event LoginEvent OnLogin;
这里定义了一个登陆事件OnLogin,它可以指向的方法签名为返回值void,参数列表(Object sender, LoginResponseEvent e);
其中LoginResponseEvent为自定义事件,只需派生自System.EventArgs。

建议楼主好好看看c#中有关委托和事件的相关主题,事件只是委托的简化,实质都是委托(类似c++的函数指针,但绝不仅如此)。

没必要定义事件那么麻烦的,这样用属性实现吧:
//将字段用属性来实现。比如有个字段
private string item;
//现在来实现一个属性
public string Item
{
get { return item; }
set
{
//此处判断变化
if (item != value)
{
//do what you want
}
}
}
忘了说了,在调用这个类的时候,是用属性来赋值
Class.Item = 5;
这时候如果Class的item不是5,则属性Item中的操作就会发生,否则不发生。