静态事件是类的事件,而不是实例的事件
当你有一个存放全局变量和公用方法的类,想在里面添加一个事件的时候,或许会用到"静态事件".
这样每当调用myClass.AddUser() 或者 myClass.RemoveUser()的时候,都会弹出一个对话框
当你有一个存放全局变量和公用方法的类,想在里面添加一个事件的时候,或许会用到"静态事件".
public delegate void UserListChangedDelegate();
public class myClass
{
public event UserListChangedDelegate OnUserListChanged;
private static List<string> _userList;
public static List<string> UserList
{
get{return _userList;}
}
//往用户列表中添加用户
public static void AddUser(string user)
{
_userList.Add(user);
if(myClass.OnUserListChanged!=null)
OnUserListChanged();
}
//从用户列表中移除一个用户
public static void RemoveUser(string user)
{
_userList.Remove(user);
if(myClass.OnUserListChanged!=null)
OnUserListChanged();
}
}
public class Test
{
Public Test()
{
//绑定事件
myClass.OnUserListChanged+=new UserListChangedDelegate(UserListChanged);
}
//处理事件
protected void UserListChanged()
{
MessageBox.Show("User List Changed!");
}
}
public class myClass
{
public event UserListChangedDelegate OnUserListChanged;
private static List<string> _userList;
public static List<string> UserList
{
get{return _userList;}
}
//往用户列表中添加用户
public static void AddUser(string user)
{
_userList.Add(user);
if(myClass.OnUserListChanged!=null)
OnUserListChanged();
}
//从用户列表中移除一个用户
public static void RemoveUser(string user)
{
_userList.Remove(user);
if(myClass.OnUserListChanged!=null)
OnUserListChanged();
}
}
public class Test
{
Public Test()
{
//绑定事件
myClass.OnUserListChanged+=new UserListChangedDelegate(UserListChanged);
}
//处理事件
protected void UserListChanged()
{
MessageBox.Show("User List Changed!");
}
}
这样每当调用myClass.AddUser() 或者 myClass.RemoveUser()的时候,都会弹出一个对话框