C#的委托有什么用,依赖于什么情况而存在的一个概念——也就是其存在的必要性和优越性体现在哪里

请用具体的实例演示说明一下
2025-03-25 19:05:40
推荐回答(2个)
回答1:

因为普通调用很多功能实现不了,所以出现委托

委托是C#中最为常见的内容。与类、枚举、结构、接口一样,委托也是一种类型。类是对象的抽象,而委托则可以看成是函数的抽象。一个委托代表了具有相同参数列表和返回值的所有函数。

可以实现异步线程操作UI,可以实现观察者模式等,可以将方法当作参数操作等
例如:
我们要为void Do(int a, double b) 的方法创建委托
定义委托:
delegate void DelegateHandler(int a, double b);

public class Test {
public void DelegateTest(int a, double b) {
Console.WriteLine("a = {0}, b = {1}", a, b);
}
}
有上面的方法,可以用它对委托变量赋值了。
Test t = new Test();
DelegateHandler handler = t.DelegateTest;
handler(1, 2);

比如Winform 异步线程更新UI
this.Invoke(new Action(Delegate{
this.textBox1.Text = "1";

}))

回答2:

个人理解:
不用委托,如何解决重用性问题?
C#里面预置了很多方法是调用委托的,具体实现过程由其他开发者自行设计,这样也比较灵活。如果这些方法不调用委托,而是传参数的话,那微软的开发人员还不疯掉啊,无论设计多少个方法,都无法满足其他开发者的要求啊。
比如某些预置的排序、比较,就是调用委托的。