C#中的事件
public class NameListEventArgs:EventArgs //定义事件的EventArgs
{
string name;
int count;
public NameListEventArgs(string str, int i)
{
name = str;
count = i;
}
public string Name
{
get { return name; }
}
public int Count
{
get{return count;}
}
}
//声明一个事件委托, 无返回值,参数为object ,NameListEventArgs
public delegate void NameListEventHandler(object source,NameListEventArgs args);
public class NameList {
ArrayList list;
public event NameListEventHandler nameListEvent;//为此类添加自定义事件
public NameList() //构造函数
{
list = new ArrayList();
}
public void add(string Name) //方法
{
list.Add(Name);
if (nameListEvent != null) //判断事件是否发生
{
nameListEvent(this, new NameListEventArgs(Name, list.Count));
}
}
}
//测试
public class EventDemo
{
public static void Main()
{
NameList names = new NameList();
names.nameListEvent += new NameListEventHandler(NewName); //注册事件
names.nameListEvent += new NameListEventHandler(CurrentCount);
names.add("aaa");
names.add("bbb");
}
public static void NewName(object source,NameListEventArgs args)
{
Console.WriteLine(args.Name+"添加进了list");
}
public static void CurrentCount(object source, NameListEventArgs args)
{
Console.WriteLine("总共有"+args.Count+"条记录!");
}
}
输出结果:
aaa添加进了list
总共有1条记录!
bbb添加进了list
总共有2条记录!