다음과 같은 내용이 상용구 코드에 많이 반복되어 있지만 아직 사용하지 않은 것 같습니다.이러한 인수가 이벤트의 기본값 인 이유는 무엇입니까?
(object sender, EventArgs e)
예 : 나는 새로운 버튼을 더블 클릭하면 다음 이벤트의 방법은 이러한 인수를 가지고 있는데이 방법에 코드를 추가 할 때 아직 내가 인수를 사용하지 마십시오.
언제 사용합니까?
다음과 같은 내용이 상용구 코드에 많이 반복되어 있지만 아직 사용하지 않은 것 같습니다.이러한 인수가 이벤트의 기본값 인 이유는 무엇입니까?
(object sender, EventArgs e)
예 : 나는 새로운 버튼을 더블 클릭하면 다음 이벤트의 방법은 이러한 인수를 가지고 있는데이 방법에 코드를 추가 할 때 아직 내가 인수를 사용하지 마십시오.
언제 사용합니까?
발신자가 이벤트의 발신자이기 때문에 동일한 클릭 핸들러를 사용하는 버튼이 여러 개있을 수 있습니다. 예를 들어 클릭 한 버튼을 사용 중지하려는 경우입니다. 물론 이벤트 핸들러를 사용하여 단일 소스에 대한 이벤트를 구독하는 경우에는별로 유용하지 않습니다.
EventArgs
자체는 아무런 정보가 없기 때문에, 꽤 무의미 - 그러나 그것은 가 (예 : 키보드와 마우스 정보 등) 정보를 가지고 할 다른 클래스를위한 기본 클래스처럼 사용된다. 그것이 존재하는 것에 대한 좋은 점은, 만약 여러분이 에 추가 정보가 필요하지 않다면, 에 가입 할 수있는 하나의 이벤트 핸들러를 생성하여 패턴을 따르는 모든 이벤트를 구독 할 수 있다는 것입니다. 예 :
button.Click += LogEvent; // EventHandler delegate type
textArea.KeyDown += LogEvent; // KeyEventHandler delegate type
...
private static void LogEvent(object sender, EventArgs ignored)
{
Control control = (Control) sender;
Log("Event fired by " + control.Name);
}
언어에 초보자로 의심됩니다. 나중에 참조 할 수 있도록 답변을 유지할 수 있습니까? 즉, 이벤트와 위임자를 완전히 이해할 때까지는 특정 방법에 대해 이러한 인수를 기본값으로 받아 들여야합니다. – whytheq
(object, EventArgs) 매개 변수가있는 이벤트의 경우 .net 프레임 워크에 미리 정의 된 대리자가 추가되어야합니다. 따라서 사용자는 이러한 이벤트를 사용하는 동안 대리인을 만들 필요가 없었습니다. –
@Romil - 시원한; 그 서명으로 이벤트를 생성하면 배경 대표 인 – whytheq