기본 클래스와 파생 클래스가 있습니다. 기본 클래스에는 가상 보호 된 단추 클릭 메서드가있는 간단한 단추가 있습니다.오버 라이딩하는 메서드가 C#에서 한 번이 아닌 두 번 실행되는 이유는 무엇입니까?
그러나, 파생 클래스의 buttonclick 방법 내부의 코드는 대신 두 번 실행 나는 ovverride 키워드를 사용하고
(i는 파생 클래스에서 buttonclick 방법은 기본 클래스 buttonclick 메소드를 오버라이드 (override) 할 같은 새로운 사용되지 않음) 파생에서
this.ok.Click += new System.EventHandler(this.ok_Click);
protected virtual void ok_Click(object sender, EventArgs e)
{
MessageBox.Show("From the Base class");
}
: 여기
일단 기본 클래스에서 코드 예제입니다 등급 :
this.ok.Click += new System.EventHandler(this.ok_Click);
protected override void ok_Click(object sender, EventArgs e)
{
MessageBox.Show("From the Derived class");
}
매우 불완전한 질문입니다. 좋은 코드는 어때요? 한 가지 가능한 실수는 메서드를 일부 이벤트 처리기에 두 번 구독하는 것입니다. – CodesInChaos
메서드를 재정의 할 때 기존 onclick 이벤트를 제거한 다음 다시 첨부하십시오. –
은 몇 가지 코드 예제를 제공 할 수 있습니까? – Tigran