public class Pub
{
public event Action OnChange = delegate {};
public void Raise()
{
OnChange();
}
}
这是C#中编程的1-83 作者写道: '另一个变化是没有外部用户可以举起你的活动。它只能通过代码定义事件的类的代码来引发。'
如果是这种情况,你不应该使用私人修饰语来提高清晰度吗?
答案 0 :(得分:3)
事件标记为public
这一事实意味着它可以订阅公开 - 任何人都可以添加Action
委托,并在事件触发时调用。如果您标记了事件private
,那么您只能在课程中订阅它。 (protected
:仅来自类或其继承者internal
:仅来自程序集内部等等。)
事件始终只能从类中触发,就像“触发此事件”方法标记为private
一样。这不受事件的实际访问修饰符的影响。