展开全部
因为普通调用很多功能实现不了,所以出现委托
委托是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";
}))
委托是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";
}))
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询