C#에서 이벤트를 전달하는 클래스를 사용하고 있습니다. 더 적은 코드 오버 헤드가 필요한 코드를 작성하는 방법이 있는지 궁금합니다.C#에서 이벤트 전달
다음은 내가 지금까지 가지고있는 것의 예입니다.
class A
{
public event EventType EventA;
}
class B
{
A m_A = new A();
public event EventType EventB;
public B()
{
m_A.EventA += OnEventA;
}
public void OnEventA()
{
if(EventB)
{
EventB();
}
}
}
클래스 A는 원래 이벤트를 발생시킵니다. 클래스 B는 EventB로 전달합니다 (본질적으로 동일한 이벤트 임). 클래스 A는 다른 모듈에서 숨겨져 있으므로 EventA에 직접 등록 할 수 없습니다.
이벤트를 전달하기 위해 클래스 B의 코드 오버 헤드를 줄이는 것이 일반적입니다. 일반적으로 클래스 B의 이벤트를 실제로 처리하지 않기 때문에 작성해야 할 이벤트가 여러 개 있습니다. 이벤트를 전달하는 역할을하는 B 클래스의 많은 OnEvent() 메소드.
은 자동으로 가능하다면 어떤 방법으로 EventB에 EventA을 연결하는 것입니다, 그래서 나는 이런 식으로 뭔가있을 것 :
class B
{
A m_A = new A();
public event EventType EventB;
public B()
{
m_A.EventA += EventB; // EventA automatically raises EventB.
}
}
내가 BTW는 C# 2.0 컴파일러를 사용하고 있습니다.
위대한 질문 그렇지 않으면 메모리 누수가 발생할 수 있습니다 (객체 B는 더 이상 필요하지 않더라도 A가있는 한 메모리에 남아 있습니다). – dbkk