怎样理解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"));
    //调用委托,可以调到所有已经与此委托绑定的方法
}
}

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值