우리는 이벤트와 클래스 선언이 고려 : 이벤트의 "공공성"의에도 불구하고공개 이벤트를 외부에서 직접 호출 할 수없는 이유는 무엇입니까?
public class FooBar
{
public event EventHandler FooBarEvent;
}
, 우리는 외부에서 FooBarEvent.Invoke
를 호출 할 수 없습니다.
이
는 다음과 같은 방법으로 클래스를 modyfing에 의해 극복된다public class FooBar
{
public event EventHandler FooBarEvent;
public void RaiseFooBarEvent(object sender, EventArgs eventArguments)
{
FooBarEvent.Invoke(sender, eventArguments);
}
}
외부 추가 만 청취자를 제거하여 제한 공개 이벤트를 액세스하는 이유는 무엇입니까?
+1, [Observer pattern] (http://en.wikipedia.org/wiki/Observer_pattern) *은 공개'notifyObservers' 메소드를 가지고 있으므로 좋은 질문입니다. – Heinzi