.NET 이벤트-개체 발신자 및 EventArgs e 란 무엇입니까?
sender 및 eventArgs는 무엇을 의미 / 참조합니까? 그것들을 어떻게 사용할 수 있습니까 (아래 시나리오의 경우)?
대본:
삭제 기능이있는 사용자 지정 컨트롤을 만들려고하는데 동일한 사용자 지정 컨트롤이 많이 포함 된 페이지에서 클릭 한 컨트롤을 삭제할 수 있기를 원합니다.
보낸 사람은 작업이 수행되는 컨트롤입니다 (예 : OnClick, 버튼).
EventArgs는이 이벤트의 구현자가 유용하다고 생각할 수있는 인수입니다. OnClick을 사용하면 좋은 것이 없지만 GridView 'SelectedIndexChanged'와 같은 일부 이벤트에서는 새 인덱스 또는 기타 유용한 데이터가 포함됩니다.
Chris가 말하는 것은 다음과 같이 할 수 있다는 것입니다.
protected void someButton_Click (object sender, EventArgs ea)
{
Button someButton = sender as Button;
if(someButton != null)
{
someButton.Text = "I was clicked!";
}
}
sender
이벤트 핸들러를 실행 한 이벤트를 호출 한 개체를 나타냅니다. 동일한 이벤트 핸들러를 사용하는 객체가 많은 경우 유용합니다.
EventArgs
더미 기본 클래스입니다. 그 자체로는 다소 쓸모가 없지만 그로부터 파생되면 이벤트 핸들러에 전달해야하는 데이터를 추가 할 수 있습니다.
당신이 당신의 자신의 이벤트를 구현할 때, 사용 EventHandler
또는 EventHandler<T>
자신의 유형으로합니다. 이렇게하면 모든 이벤트에 대해이 두 가지 매개 변수를 정확히 갖게됩니다 (좋은 점입니다).
보낸 사람을 사용자 지정 컨트롤 유형으로 수동 캐스팅 한 다음이를 사용하여 삭제하거나 비활성화합니다. 예를 들면 다음과 같습니다.
private void myCustomControl_Click(object sender, EventArgs e)
{
((MyCustomControl)sender).DoWhatever();
}
'보낸 사람'은 작업 된 (예 : 클릭 된) 개체입니다.
이벤트 인수는 더 복잡한 컨트롤 (예 : 트 리뷰)에 대해 서브 클래 싱되므로 이벤트에 대한 자세한 정보 (예 : 정확히 클릭 한 위치)를 알 수 있습니다.
'보낸 사람'은 일부 제어에 대해 수행하는 작업이있는 개체라고합니다.
'event'는 일부 사용자가 수행하는 동작 및 ID가있는 제어에 대한 정보를 가지고 있습니다. 이벤트가 발생하여 액션이 생성 될 때 배열 내에 유지하는 것을 이벤트 agrs라고합니다.
참고로, sender
그리고 e
ASP.NET 또는 C #을 특정하지 않습니다. 이벤트 (C # 프로그래밍 가이드) 및 Visual Basic의 이벤트를 참조하세요 .
참고 URL : https://stackoverflow.com/questions/1303145/net-events-what-are-object-sender-eventargs-e
'Programing' 카테고리의 다른 글
PHP : 클래스 함수를 콜백으로 사용하는 방법 (0) | 2020.10.17 |
---|---|
총알은 어디에서 왔습니까? (0) | 2020.10.17 |
레거시 코드에 단위 테스트 추가 (0) | 2020.10.17 |
내 div 여백이 겹치는 이유는 무엇이며 어떻게 수정할 수 있습니까? (0) | 2020.10.17 |
onActivityResult () 전에 onResume ()이 호출됩니까? (0) | 2020.10.17 |