c#--委托

我是这样理解的:委托是对方法的引用,相当于方法的别名,也就是说委托与方法具有相同的行为。

委托变量说白了就是接受方法名作为参数的变量,当我们使用这个委托变量的时候就相当于调用了这个方法。

我也感觉"委托"就是方法别名,或者调用别人的方法时,不用原来的方法名,可以自己起一个有意义的名字(联想一下文件的快捷方式)

委托在现实生活中来说就是你叫别人去帮你做一件事(别人做事用到方法),然后他把事做了之后给你返回个结果。

你可以直接打电话给奥巴马,不过一般情况下是他的助手转接的,并且他的助手会告诉你,我们已经给你汇报啦,他的助手就是个委托。

委托是为事件而生的,事件用的是消息处理机制,任何委托的函数都由消息来触发,他在消息处理线程运行
我觉得委托的意思就是,委托Windows的消息处理去处理一个函数。

方法参数化

想把方法作为参数吗?就使用委托吧~

参数是什么作用? 答:运行时候可以传入不同的值,fun(int a),我第一次运行时传入5,第二次运行时候传入3
方法作为参数呢? 答:运行时候可以传入不同的方法,具体例子很多。

委托是一种定义方法签名的类型,可以与具有兼容签名的任何方法关联。您可以通过委托调用方法。委托用于将方法作为参数传递给其他方法。事件处理程序就是通过委托调用的方法

using System;
//定义委托,它是一个函数声明,但是没有实现
public delegate string Mydelegate(string s);
// 定义类
public class A
{
// 定义方法,为了使用委托,方法签名与委托签名相同,就是返回类型 参数与委托签名相同
public string UpperMethod(string ss)
{
    return ss.ToUpper();
}
// 定义方法,为了使用委托,方法签名与委托签名相同,就是返回类型 参数与委托签名相同
public string LowerMethod(string ss)
{
    return ss.ToLower();
}
}

class Program
{
public static void Main(string[]args)
{
    // 实例化类
    A aa = new A();
    //委托可以与你的方法绑定啦
    Mydelegate del = new Mydelegate(aa.UpperMethod);
    //Mydelegate del += new Mydelegate(aa.LowerMethod);
    Console.WriteLine(del("adAAd"));
    //给委托添加一个方法,形成委托链
    del += aa.LowerMethod;
    Console.WriteLine(del("adAAd"));
    //调用委托,可以调到所有已经与此委托绑定的方法
}
}


posted on 2012-04-10 16:57 青蛙學堂 阅读(174) 评论(0)  编辑 收藏 引用 所属分类: Vs2008

只有注册用户登录后才能发表评论。
<2012年4月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

导航

统计

常用链接

留言簿(8)

随笔分类

随笔档案

收藏夹

青蛙学堂

最新评论

阅读排行榜

评论排行榜