C# 关于何时和何时不提出事件的问题(C)

C# 关于何时和何时不提出事件的问题(C),c#,events,msn,raise,C#,Events,Msn,Raise,我正在为MSN Messenger编写一个即时消息库,我有一个关于引发事件的简单问题 登录时,我应该为每个已同步的用户(已在联系人列表上)引发UserAdded,还是应该为通过AddUser方法将新用户添加到联系人列表时保留UserAdded事件?我是否应该在下载用户时使用另一个事件UserDownloaded 同样,当我调用logout时,是否应该调用UserRemoved 我希望这是有道理的 谢谢这是一个更一般的设计问题,可能取决于您的具体情况,例如,您计划使用什么活动?图书馆的用户需要什么

我正在为MSN Messenger编写一个即时消息库,我有一个关于引发事件的简单问题

登录时,我应该为每个已同步的用户(已在联系人列表上)引发UserAdded,还是应该为通过AddUser方法将新用户添加到联系人列表时保留UserAdded事件?我是否应该在下载用户时使用另一个事件UserDownloaded

同样,当我调用logout时,是否应该调用UserRemoved

我希望这是有道理的


谢谢

这是一个更一般的设计问题,可能取决于您的具体情况,例如,您计划使用什么活动?图书馆的用户需要什么信息

我认为在从任何源添加用户(本地和下载新用户时)时触发事件更有用,因为您可以使用事件作为何时需要更新用户列表的通知(例如)。事件还可以携带一些
YourEventArgs
信息,其中包含有关源的信息(本地与下载的)


当调用某个方法时触发事件可能没有那么有用(如果库的用户调用了该方法),因为库的用户可能知道他正在调用该方法(因此不需要通知他).

这是一个更一般的设计问题,可能取决于您的具体情况,例如,您计划使用什么活动?图书馆的用户需要什么信息

我认为在从任何源添加用户(本地和下载新用户时)时触发事件更有用,因为您可以使用事件作为何时需要更新用户列表的通知(例如)。事件还可以携带一些
YourEventArgs
信息,其中包含有关源的信息(本地与下载的)


调用某个方法时触发事件可能没有那么有用(如果库的用户调用了该方法),因为库的用户可能知道他正在调用该方法(因此不需要通知他)。

谢谢,我会继续这样做,使用事件参数表示事件的起源。谢谢,我将继续执行此操作,使用事件参数表示事件的起源。