0
미세 다음 작업 모두 다음대리자 변수를 할당하여 이벤트 처리기를 등록 할 수없는 이유는 무엇입니까?
BindingList<Employee> lstEmployees = new BindingList<Employee>();
//delegate pointing to an anonymous method
//----------------------------------------
delegate void ListChanged(object lst, ListChangedEventArgs args);
private void Form1_Load(object sender, EventArgs e)
{
listBox1.ValueMember = "Empno";
listBox1.DisplayMember = "Ename";
listBox1.DataSource = lstEmployees;
ListChanged lstchanged = delegate(object lst, ListChangedEventArgs args)
{
lblEmpCount.Text = lstEmployees.Count.ToString();
};
lstEmployees.ListChanged += new ListChangedEventHandler(lstchanged);
}
//Anonymous method (with params)
//-----------------------------------------------------
private void Form1_Load(object sender, EventArgs e)
{
listBox1.ValueMember = "Empno";
listBox1.DisplayMember = "Ename";
listBox1.DataSource = lstEmployees;
lstEmployees.ListChanged += delegate(object lst, ListChangedEventArgs args)
{
lblEmpCount.Text = lstEmployees.Count.ToString();
};
}
하지만하지 :
delegate void ListChanged(object lst, ListChangedEventArgs args);
private void Form1_Load(object sender, EventArgs e)
{
listBox1.ValueMember = "Empno";
listBox1.DisplayMember = "Ename";
listBox1.DataSource = lstEmployees;
ListChanged lstchanged = delegate(object lst, ListChangedEventArgs args)
{
lblEmpCount.Text = lstEmployees.Count.ToString();
};
lstEmployees.ListChanged += lstchanged; //error here
}
내가 직접 익명 메소드를 할당 할 수있는 경우 (이는 대리인), 왜 대리인 변수? 나는이 세 가지 방법의 차이점을 이해하려고 노력하고 있으며 왜 세 번째 방법을 쓸 수 없습니까?