임시로 첨부 할 정적 메서드가 있습니다. 메모리에 저장하지 않으려 고하거나, 두 개의 이벤트 처리기를 실행하는 상황에 놓이게 할 수 있습니다. 그것을 두 번 부르십시오.인라인 정적 이벤트 제거
나는 이것들이 정적인지 아닌지에 관해서는 거의 이야기하지 않았으며 토론/리펙터 책임을 갖지 않을 것을 선호한다.
처음에 나는이 잘 작동하고있다이public static void DoSomething()
{
try
{
MyStaticClass.MyEvent +=new EventHandler<HandledEventArgs>(MyStaticClass_HandleMe);
... //Doing Stuff
}
finally
{
MyStaticClass.MyEvent -=new EventHandler<HandledEventArgs>(MyStaticClass_HandleMe);//Detach from event
}
}
처럼 그 일을했다,하지만 난 방법의 다른 이벤트와 일치하는 이벤트를 인라인으로 처리하고자뿐만 아니라 취소의 설정 것 boolean은 함수에 대해 지역적이며 다른 이벤트에 의해 사용됩니다.
public static void DoSomething()
{
try
{
bool cancel = false;
MyStaticClass.MyEvent +=new EventHandler<HandledEventArgs>(delegate(object sender, HandledEventArgs e)
{
cancel = true;
})
... //Doing Stuff dependent on cancel = false;
}
finally
{
//???
}
}
시나리오 2에서 정적 이벤트를 어떻게 정리하고 분리 할 수 있습니까?
건배, 지금 내가 그것을보고 너무 명백한 것을 :) – johnc