문제
이것은 예를 동반 agsXMPP.Net 어셈블리입니다.I've read up 에서 대리인,하지만 확실하지 않는 방법에 맞는 이 라인의 코드(을 기다리는 로그온하여 발생한 다음 메시지를 보냅니다.나는 내가 무엇을 찾고 있는지에 대한 이해 delegate(0)
이 기능을 수행,종류에의 간단한 조건을 이해할 수 있습니다.
xmpp.OnLogin += delegate(object o) {
xmpp.Send(new Message(new Jid(JID_RECEIVER),
MessageType.chat,
"Hello, how are you?"));
};
해결책
이 delegate(object o){..}
컴파일러를 패키지로 무엇이 대괄호 안에 있는 객체로 실행되는 이상,이러한 경우 OnLogin
가 발생합니다.이 없 delegate()
문 컴파일러는 생각할 것이 있다 묶는 작업을 실행하의 중간에 assignemnt 문 및 오류가 있습니다.
다른 팁
그것은 정확히 동일
xmpp.OnLogin += EventHandler(MyMethod);
는 MyMethod 가
public void MyMethod(object o)
{
xmpp.Send(new Message(new Jid(JID_RECEIVER), MessageType.chat, "Hello, how are you?"));
}
으로 아베 총리는 지적,이 코드를 만드는 익명의 기능입니다.이:
xmpp.OnLogin += delegate(object o)
{
xmpp.Send(
new Message(new Jid(JID_RECEIVER), MessageType.chat, "Hello, how are you?"));
};
되었을 것 수행에서 다음과 같이 이전 버전의.Net(I 을 제외한 클래스를 선언한,그리고 그 필수적인 요소)사용:
delegate void OnLoginEventHandler(object o);
public void MyLoginEventHandler(object o)
{
xmpp.Send(
new Message(new Jid(JID_RECEIVER), MessageType.chat, "Hello, how are you?"));
}
[...]
xmpp.OnLogin += new OnLoginEventHandler(MyLoginEventHandler);
무슨 일을 하는 어느 경우에는 연결하는 방법을 실행할 때 xmpp 와 호환 이벤트가 발생합니다.
OnLogin
on xmpp 은 아마 이벤트를 선언한 이
public event LoginEventHandler OnLogin;
가 LoginEventHandler
은 대형마로 선언:
public delegate void LoginEventHandler(Object o);
는 것을 의미를 구독하기 위해 이벤트를 제공해야 합법(나 방법 익명 / lambda expression 는)경기 LoginEventHandler
임자 서명이 있습니다.
예에서,당신이 통과하는 익명 사용하는 방법 delegate
키워드:
xmpp.OnLogin += delegate(object o)
{
xmpp.Send(new Message(new Jid(JID_RECEIVER),
MessageType.chat,
"Hello, how are you?"));
};
의 방법 익명과 일치하는 대리인의 서명에 의해 예상된 OnLogin
이벤트(void 반환을 입력 중 하나 개체수).수도 제거 object o
매개 변수에 활용 반공, 이후,그것은 내에서 사용하는 방법 익명체.
xmpp.OnLogin += delegate
{
xmpp.Send(new Message(new Jid(JID_RECEIVER),
MessageType.chat,
"Hello, how are you?"));
};
을 만드는 익명의 기능입니다.이 기능을 도입되었 C#2.0
그것이 제공하는 익명의 방법,그래서 당신은 당신이 필요하지 않을 선언하는 다른 곳이다.그것은 매우 유용합니다.
그것이 무엇을 경우에는 첨부하는 방법 목록에는 작업이 트리거되기 때문에 onLogin
이벤트입니다.
에 동의 아베 총리,이 익명의 방법입니다.익명의 방식이란 것은 없다고 말씀하시지만 메서드 이름이 없는 제공할 수 있습으로 매개 변수는 인자이다.
분명히 와 호환 개체입니다 이벤트를 사용하여 연산자를 보장하는 방법으로 지정된 익명의 대리자를 위 실행할 때마다 와 호환 이벤트가 발생합니다.
기본적으로,코드 내부{}실행 할 때"와 호환"이벤트의 xmpp 이벤트가 발생합니다.이름을 기반으로,나는 추측하는 이벤트가 발생 동안 어떤 시점에서 로그인 과정입니다.
The syntax:
delegate(object o) { statements; }
이라는 익명의 방법입니다.코드에 당신의 질문을 것 equivilent 다.
public class MyClass
{
private XMPPObjectType xmpp;
public void Main()
{
xmpp.OnLogin += MyMethod;
}
private void MyMethod(object o)
{
xmpp.Send(new Message(new Jid(JID_RECEIVER), MessageType.chat, "Hello, how are you?"));
}
}
당신은 가입하는 와 호환 이벤트에 xmpp.
즉 xmpp 화재 이벤트 코드가 내부에 익명의 대리자가 발생합니다.그 우아한 방법을 콜백이 있습니다.
에 Xmpp,같은 것입니다:
// Check to see if we should fire the login event
// ALso check to see if anything is subscribed to OnLogin
// (It will be null otherwise)
if (loggedIn && OnLogin != null)
{
// Anyone subscribed will now receive the event.
OnLogin(this);
}