您的位置:首页 > 其它

委托的经典用法-计算器实例-来自王涛《你必须知道的.NET》

2008-04-23 14:53 786 查看
新增的委托类,定义如下:

public class DelegateEx
{
//声明一个委托
public delegate void CalculateDelegate(Int32 x, Int32 y); //委托关联方法1-实现加法-注意两者的《返回值》《参数》必须相同
public static void Add(Int32 x, Int32 y)
{
MessageBox.Show("加法结果:"+(x+y));
} //委托关联方法2-实现减法
public static void Subtract(Int32 x, Int32 y)
{
MessageBox.Show("减法结果:"+(x-y));
} //委托关联方法3-实现乘法-复制上面的
public static void Multiply(Int32 x, Int32 y)
{
MessageBox.Show("乘法结果:" + (x * y));
} //委托关联方法4-实现div法
public static void Divide(Int32 x, Int32 y)
{
MessageBox.Show("整除结果:" + (x / y));
}
}

Form1.cs类实现如下:

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} //定义委托类型变量
private DelegateEx.CalculateDelegate myDelegate; private void button1_Click(object sender, EventArgs e)
{
try
{
//取加法的两个元
Int32 x = Convert.ToInt32(textBox1.Text);
Int32 y = Convert.ToInt32(textBox2.Text);
//
myDelegate = new DelegateEx.CalculateDelegate(DelegateEx.Add);
myDelegate(x,y);
}
catch (FormatException fe)
{
}
} private void button2_Click(object sender, EventArgs e)
{
try
{
//
int x = Convert.ToInt32(textBox1.Text);
int y = Convert.ToInt32(textBox2.Text); myDelegate = new DelegateEx.CalculateDelegate(DelegateEx.Subtract);
myDelegate(x, y);
}
catch (System.FormatException fe)
{
}
} private void button3_Click(object sender, EventArgs e)
{
try
{ //
int x = Convert.ToInt32(textBox1.Text);
int y = Convert.ToInt32(textBox2.Text); //如何增加委托到委托链
myDelegate = new DelegateEx.CalculateDelegate(DelegateEx.Add);
myDelegate += new DelegateEx.CalculateDelegate(DelegateEx.Subtract);
myDelegate += new DelegateEx.CalculateDelegate(DelegateEx.Multiply);
myDelegate += new DelegateEx.CalculateDelegate(DelegateEx.Divide); //使用方法一样
myDelegate(x, y);
}
catch (FormatException fe)
{
}
}
}

解释一下:上面用Convert类转换类型时候,可能有异常,所以捕捉一下,不过我没处理~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: