刚刚开始学习.net,学到delegate,很多书都介绍delegate的使用方法,其实delegate如何使用我会,但我不理解为何要使用delegate,什么时候用delegate,比如下面一个例子
public void add(int a, int b)
{Console.WriteLine("{0}+{1}={2}", a, b, a + b);}
public void sub(int a, int b)
{Console.WriteLine("{0}-{1}={2}", a, b, a - b);}
delegate void Mydelegate(int a,int b);
Mydelegate Adelegate;
string s = Console.ReadLine();
if (s == "a")
{ Adelegate = new Mydelegate(new math().add); }
else
{ Adelegate = new Mydelegate(new math().sub); }
Adelegate(5, 4);上面是委托来实现函数的调用,可为什么不直接引用函数呢?
if (s == "a")
{ new math().add(5, 4); }
else
{ new math().sub(5, 4); }
public void add(int a, int b)
{Console.WriteLine("{0}+{1}={2}", a, b, a + b);}
public void sub(int a, int b)
{Console.WriteLine("{0}-{1}={2}", a, b, a - b);}
delegate void Mydelegate(int a,int b);
Mydelegate Adelegate;
string s = Console.ReadLine();
if (s == "a")
{ Adelegate = new Mydelegate(new math().add); }
else
{ Adelegate = new Mydelegate(new math().sub); }
Adelegate(5, 4);上面是委托来实现函数的调用,可为什么不直接引用函数呢?
if (s == "a")
{ new math().add(5, 4); }
else
{ new math().sub(5, 4); }
解决方案 »
- C# 删除控件的同时怎么能释放他们的内存呢?
- 应 PASV 命令的请求,服务器返回了一个与 FTP 连接地址不同的地址。
- 关于dataset的问题
- C#操作文本文件 查找 位置
- c# timer和while使用问题
- C#关于鼠标拖动picturebox过程中的问题!!!!!!急!!!!!!!!!!!
- C# 遍历json串
- 如何给timer[]加事件?
- 小白用VS2010做登陆窗口,我想问问COMBOBOX的调用方法,为什么在选择学生的时候输入了相应账号密码不能跳转到Form2呢,Form3可以正常调用
- wpf 关于自定义关闭按钮的问题?求原因求解答
- ~~~~~~~~~~~~~C#运行报的这个错误是什么意思?
- 怎样判断一个字符串是否包含另一字符串?然后进行替换
.NET 里的所有 EventHandler 都是 delegate