'GENERIC'에 해당되는 글 1건

  1. 2009.05.13 이벤트 만들 시 주의사항 ( 제너릭 EventArgs에 대하여 )

이벤트 만들 시 주의사항 ( 제너릭 EventArgs에 대하여 )

|

이 이벤트 발생시 전달하는 클래스를 제너릭으로 만들면 동작은 잘 되지만
이벤트 생성 처리시에 문제가 있다.
여기서의 생성 처리시 문제란 VS가 자동으로 생성해 주는 경우이다.

void textBox1_TextChanged(object sender)
{

}

원래는 이렇게 생성 되어야 한다.
물론 위의 것을 아래로 수정해도 된다.
void textBox1_TextChanged(object sender, DChangeEventArgs<String> e)
{

}

이 문제의 해결은 제너릭으로 만들어 진 것을 다시 상속받아 제너릭이 아니게 만들면 된다.
class DTextChangeEventArgs : DChangeEventArgs<String>
{
	public DTextChangeEventArgs(String oldValue, String newValue) : base(oldValue, newValue)
	{
	}
}

물론 EventHandler<T> 도 문제가 있으므로
이것은 직접 delegate를 이용한 EventHandler를 만들어 이용하도록 하자.
//public event EventHandler<DTextChangeEventArgs> TextChanged;

public delegate void DTextChangeEventHandler(object sender, DTextChangeEventArgs e);
public event DTextChangeEventHandler TextChanged;

And
prev | 1 | next