비동기 클래스로 작업하면서 종종 필드에 상태를 저장해야만 완료된 메서드에서 액세스 할 수 있습니다. 이상적으로, 필자는 필드에 상태를 저장하는 것을 피하고 싶습니다. 이는 여러 번의 호출과 필드 데이터에 대한 영향에 대해 걱정할 필요가 있다는 것을 의미합니다.범위를 잃지 않고 이벤트 처리기를 추가하고 분리 할 수있는 방법이 있습니까?
Resharper가 나에게 '수정 된 공개 액세스'경고를 주지만이 코드 블록을 작성했습니다.
public void Test(Action<Result> result)
{
var myClass = new MyClass();
EventHandler eventHandler = null;
eventHandler = (s, e) =>
{
var mc = (MyClass) s;
mc.Completed -= eventHandler;
result(mc.Result);
};
myClass.Completed += eventHandler;
myClass.Run();
}
문제는이 코드 블록이 있고하지 않을 경우, 데이터를 저장 및 범위의 어떤 수준이 여전히 존재하는지 확인하기 위해 필드를 작성하지 않고이 작업을 수행 할 수있는 더 좋은 방법은 무엇입니까?