C#委托-怎样理解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"));

//调用委托,可以调到所有已经与此委托绑定的方法

}

}