我正在研究代表。几天前,我为多播代表做了一个示例,并在这里复习了我以前的问题,并清楚地了解了多播代表。
但现在我试图用一个事件来做一个多播委托示例。但是我在做样品时遇到了一些疑问。在上面的链接中,我在一个类中完成了所有函数和委托声明,并使用 += 将函数添加到委托中,然后调用委托。所以委托中的所有函数都被调用了。
但现在我在两个不同的课程中做这件事,并试图在一个事件的帮助下完成所有功能。我在下面提供我当前的代码。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
ArithmeticOperations aOperations = new ArithmeticOperations();
aOperations.StartCalculations += new ArithmeticOperations.BasicCalculations(aOperations_StartCalculations);
aOperations.PerformCalculations(20, 10);
}
void aOperations_StartCalculations(string msg)
{
MessageBox.Show(msg);
}
}
class ArithmeticOperations
{
public delegate void BasicCalculations(string msg);
public event BasicCalculations StartCalculations;
public void PerformCalculations(int n1, int n2)
{
StartCalculations("Operation Success");
}
void Add(int num1, int num2)
{
MessageBox.Show("Performing addition.");
}
void Sub(int num1, int num2)
{
MessageBox.Show("Performing substraction.");
}
void Mul(int num1, int num2)
{
MessageBox.Show("Performing multiplication.");
}
void Div(int num1, int num2)
{
MessageBox.Show("Performing division.");
}
}
在 Form1 中是我的主类,而 ArithmeticOperations 类用于执行功能。何时发表此声明
aOperations.PerformCalculations(20, 10);
在 Form1 中,将执行 ArithmeticOperations 类中的 PerformCalculation() 函数。
但我的疑问是我如何将所有 Add、Sub、Mul 和 Div 函数注册到 ArithmeticOperations 类中的委托,以通过调用委托对象并将“操作成功”返回给 Form1 类中的事件回调函数来调用所有函数?