고전 일반적으로 C 번호 이벤트는 이러한 매개 변수가 있습니다.이벤트 패턴에서 기본 클래스로 EventArgs의 목적은 무엇입니까?</p> <pre><code>(object sender, EventArgs e) </code></pre> <p>내가 <code>EventArgs</code> 대한 유도의 <code>e</code> 인수에 대한보다 구체적인 서명 이벤트를 구현할 수 있습니다
이제 EventArgs
같은 기본 클래스의 목적은 무엇인가? 내 말은 ... 비어있는거야. 기본/추상/가상 속성이나 필드 또는 기타 다른 것은 없습니다.
왜 기본 이벤트의 매개 변수를 그냥 아래와 같이하지? 이다
(object sender, object eventArgs)
, 왜 어떤 구현 및 특정 이벤트 인수 매개 변수를 사용하여 모든 이벤트는 EventArgs
에서가 아니라 단순한 object
에서 파생?
위 질문은 다음 질문과 동일합니다. 일반적인 형태의 이벤트 위임은 다음과 같습니다
delegate void EventHandler<TEventArgs>(object sender, TEventArgs e)
및 제한 매개 변수 e
에 넣어되지 않습니다. 하지만 where TEventArgs : EventArgs
과 같은 것을 기대했을 것입니다 ...
* 이벤트 데이터를 포함하는 클래스의 기본 클래스를 나타냅니다 및 이벤트 데이터 * 포함하지 않는 이벤트에 사용할 값을 제공합니다 - [문서]에서을 (https://msdn.microsoft.com/en-us을 /library/system.eventargs). 나는 그것이 자명하다고 믿는다. –
@FedericoDipuma 글쎄, * 일종의 *,하지만'object'도 그 일을 할 것입니다 ... 예외적으로'.Empty'를 제외하면 –
@MarcGavell 물론 당신 말이 맞습니다. 나는 그 자체로 문서 자체가 인정하기 때문에,'EventArgs'를위한 기술적 인 이유가 없다는 것을 지적하고있었습니다. 그냥 상속 일관성. –