간편한 읽기 코딩을 위해 대리인 생성을 단순화 할 수있는 방법이 있습니까? 여기에 내가 할 수 있도록하고 싶습니다 무엇의 예와 그것을 할 수있는 방법이 있는지 궁금 해서요 :메서드를 전달하여 대리자를 간단하게 만들 수 있습니까?
public delegate void MyDelegate(Object sender, EventArgs e);
public class ClassWithEvent
{
public event MyDelegate MyEvent;
public ClassWithEvent() { }
public void RegisterForEvent(Method)
{
MyEvent += new MyDelegate(Method);
}
public void Trigger()
{
if(MyEvent != null)
{
MyEvent(this, null);
}
}
}
public class ClassToRegister
{
public ClassWithEvent MyEventClass = new ClassWithEvent();
public ClassToRegister() { }
public void RegisterMe()
{
MyEventClass.RegisterForEvent(MyEventMethod);
MyEventClass.Trigger();
}
public void MyEventMethod(Object sender, EventArgs e)
{
Console.Writeline("Hello there!");
}
}
이 캡슐의 이익에 부합하려고 노력 뒤에 점을. 이벤트를 발생시키는 클래스는 클래스에 액세스하는 본질적으로 블랙 박스라고 가정합니다. 이것이 내가 볼 수있는 가장 바람직한 객체 지향 흐름이 될 것이므로, 이것을 수행하는 방법이 있는지 또는 등록 클래스가 작성해야하는 위임자에 대한 지식이 없으면이를 수행 할 수있는 방법이 없는지 궁금합니다.
이 작업을 수행이 당신이 * * 일을하고 싶은 코드, 코드이며 CHAGE 싶어? 후자의 경우 *해야한다고 생각하는 것을 제공 할 수 있습니까? – BradleyDotNET
이것은 가상의 코드입니다. 나는 이벤트와 대표자들에게 아직 익숙하지 않아서 내 질문에 아무런 관련이없는 어딘가에서 실수를했을지도 모른다. 한 클래스가 해당 메서드에 대한 대리자를 자체 코드로 선언하지 않고 해당 메서드를 단순히 전달하는 방법이 있는지 궁금합니다. I.E. - "MyDelegate"의 이름에 대한 지식없이 "ClassToRegister"가 "MyEvent"에 가입 할 수 있습니까? – ThisHandleNotInUse
일반 작업