当前位置:编程学习 > C#/ASP.NET >>

关于委托

有没有大神给具体讲讲委托,以及使用委托的好处 --------------------编程问答-------------------- 官网有详细的介绍。http://msdn.microsoft.com/zh-cn/library/900fyy8e(VS.80).aspx --------------------编程问答-------------------- 自己的一点小体会,供参考:
1.回调函数:如果你打算在一个函数中,把另一个函数当作参数使用,以实现回调,那么你会发现,你需要用一个委托变量去实现传递这个函数,此时委托相当于函数的“变量”或“指针”。(某些语言提供了Function类型变量,就不用使用委托了)
private void a()
{
//回调函数
}
private void b(Action actionA)
{
//打算使用回调函数的函数
}
b(a);//调用b,并把a作为回调函数。b执行过程中可以通过委托变量actionA调用a。
2.跨线程操作用户控件时,需要把操作的函数放在当前线程操作(Invoke方法),因此还是需要一个类似函数变量的东西,就是委托。
3.动态调用C#写的DLL时,需要使用反射和委托来执行封装的函数。 --------------------编程问答-------------------- 其实就是C以及C++中的,函数参数

而在C#中,是无法操作指针的,所以函数参数就没法传,所以就出现了委托来解决这个问题

在C/C++,函数指针代表这函数,在这行过程中也能获得一些参数信息,所以在这里我们定义委托时也需要这些信息

public delegate string GetSomeThing(int layer);

这里我们这样描述这个委托:返回值是string,传入参数是一个int值
函数不就是这样的吗

在使用时,
GetSomething get = new GetSomething(function);
然后这个function就是符合我们规则的一个函数
        private string function(int layer)
        { 
            return "";
        } --------------------编程问答-------------------- http://msdn.microsoft.com/zh-cn/library/vstudio/c2456w5y(v=vs.100).aspx

看看有帮助没 --------------------编程问答-------------------- 谢谢各位热心人 --------------------编程问答-------------------- http://bbs.csdn.net/topics/390622815

我不想再重复说一次。 --------------------编程问答-------------------- 这其实很简单。

一切东西都是对象,方法和事件也不例外。给一个方法对象
Action<string, int> proc;
你就可以得到其参数列表(使用了string和int类型的两个参数),并且你可以调用这个方法对象,你也可以把它赋值给其它变量,因为它是普通的对象。 --------------------编程问答-------------------- 首先它是一个标准的对象,具有详细的元数据描述,编译器可以检验其类型,而不像某些古老的编程语言中那样仅仅用一个整数(美其名曰“指针”)来稀里糊涂地指代它。

因此管它什么“好处”呢?首先.net就是一个更加面向对象的、比较方便于在你编译解决就发现程序错误的开发平台,而不是一个藏污纳垢容许用一个整数来胡乱指代含义的平台。 --------------------编程问答-------------------- 不是一个藏污纳垢容许用一个整数来胡乱指代含义的平台  -->  不是一个藏污纳垢默认用一个整数来胡乱指代含义的平台 --------------------编程问答-------------------- 好处不知道,只知道要用到事件就得用委托,还就是winform有个跨线程操作控件也得用委托
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,