C#委托的例程
1.委托的引入
为什么要使用委托呢,委托最直观的理解是所有的类中方法都具有相同的格式,来传递参数。例如设计一个计算加减乘除的委托程序
2.项目的实施
委托及事件的设计
public delegate float Delegate(float i, float j);//定义一个委托
public class Publish
{
public event Delegate myEvent;//定义一个事件
public float DoSomething(float i, float j)//事件触发
{
return myEvent(i,j);
}
}
事件处理类设计
public class Listen
{
public float Add(float i, float j)
{
return i + j;
}
public float Mul(float i, float j)
{
return i * j;
}
public float Sub(float i, float j)
{
return i - j;
}
public float Div(float i, float j)
{
return i / j;
}
}
项目整体触发设计
Publish pb = new Publish();
Listen ls = new Listen();
public float input1;
public float input2;
public float output;
private void button1_Click(object sender, EventArgs e)
{
input1 =(float) Convert.ToSingle(textBox1.Text);
input2 =(float) Convert.ToSingle(textBox2.Text);
pb.myEvent += new Delegate(ls.Add);
textBox3.Text = pb.DoSomething(input1, input2).ToString();
pb.myEvent -= new Delegate(ls.Add);
pb.myEvent += new Delegate(ls.Mul);
textBox4.Text = pb.DoSomething(input1, input2).ToString();
pb.myEvent -= new Delegate(ls.Mul);
pb.myEvent += new Delegate(ls.Sub);
textBox5.Text = pb.DoSomething(input1, input2).ToString();
pb.myEvent -= new Delegate(ls.Sub);
pb.myEvent += new Delegate(ls.Div);
textBox6.Text = pb.DoSomething(input1, input2).ToString();
}
以上历程设计完成,能在C#中实现很好的计算