위임자와 이벤트가있는 클래스 간의 통신 데모를 개발하는 데는 며칠이 걸렸습니다. 이 클래스 간의 데이터 전달을 수행하는 최상의 방법인지 여부를 알고 싶습니다. 더 좋은 방법이 있으면 알려주세요. 특히, 하위 클래스에서 무언가가 발생하면 어떻게 메인 클래스로 되돌릴 수 있습니까? 이는 비즈니스 로직 레벨 및 데이터 액세스 레벨에서 사용자 인터페이스를 분리하여 n 계층 아키텍처를 수행 할 때 특히 유용합니다.여러 클래스가있는 대리모 및 이벤트
나는 tb1, tb2 및 tbAnswer라는 3 개의 텍스트 상자가있는 양식이 있습니다. "추가"라고 표시된 버튼이 있으며 버튼 1입니다.
주요 형식은 다음과 같습니다
namespace DelegateTest
{
public delegate void ShowMessage(object sender, Form1.AnswerEventArgs e);
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void a_OnShowMessage(object sender, AnswerEventArgs e)
{
tbAnswer.Text = e.answer;
}
public class AnswerEventArgs :EventArgs
{
public string answer { get; set; }
}
private void button1_Click(object sender, EventArgs e)
{
AddClass a = new AddClass();
a.OnShowMessage += new ShowMessage(a_OnShowMessage);
a.AddMe(Convert.ToInt16(tb1.Text), Convert.ToInt16(tb2.Text));
}
}
}
과 하위 폼이라고 AddClass.cs은 다음과 같습니다
namespace DelegateTest
{
class AddClass
{
public event ShowMessage OnShowMessage;
public void AddMe(int a, int b)
{
Form1.AnswerEventArgs e = new Form1.AnswerEventArgs();
e.answer = (a+b).ToString();
OnShowMessage(this, e);
}
}
}
Jon 코드 형식을 도와 주셔서 감사합니다. 나는 그걸로 고투한다. – SDanks