委托的经典用法-计算器实例-来自王涛《你必须知道的.NET》
2008-04-23 14:53
786 查看
新增的委托类,定义如下:
Form1.cs类实现如下:
解释一下:上面用Convert类转换类型时候,可能有异常,所以捕捉一下,不过我没处理~
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)); } } |
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) { } } } |
相关文章推荐
- 匿名方法-简化的委托-来自王涛《你必须知道的.NET》
- 委托的总结-来自王涛《你应该知道的.NET》
- c#初学-多线程中lock用法的经典实例
- C#中委托用法实例分析
- JavaScript事件委托原理与用法实例分析
- C++中引用(&)的用法和应用实例(相当经典!!!)
- 一个比较经典的委托与事件实例
- 详解mysql的limit经典用法及优化实例
- c#初学-多线程中lock用法的经典实例
- 沿“委托”而上溯到“NET事件模型”-来自王涛《你必须知道的.NET》
- c# 多线程中lock用法经典实例及lock("xxx"),lock(typeof(Class)),Lock(this)的区别
- 多线程中lock用法的经典实例
- [置顶] java中List的用法和实例详解(经典)
- 多线程中lock用法的经典实例
- C#泛型委托的用法实例分析
- C#中Predicate<T>与Func<T, bool>泛型委托的用法实例
- 学习C语言及GTK界面编程经典实例修改: 计算器
- c#初学-多线程中lock用法的经典实例
- C#中委托用法实例详解
- javascript委托(Delegate)blur和focus用法实例分析