C#中的委托怎么理解呢

现在在学asp.netmvc接触了linq感觉对委托有点障碍,不知道怎么看方法的需求给生命委托,求大神指点下... 现在在学asp.net mvc 接触了linq 感觉对委托有点障碍,不知道怎么看方法的需求给生命委托,求大神指点下 展开
 我来答
仙戈雅3n
推荐于2016-10-01 · TA获得超过5790个赞
知道大有可为答主
回答量:2398
采纳率:75%
帮助的人:873万
展开全部

简单地理解委托就是用来动态代理与其签名相同的方法。

 class Program
    {
        // 声明委托类型CalcCallback,原型如下:
        public delegate double CalcCallback(double x, double y);
        
        static void Main(string[] args)
        {
            // 下面使用3种方式初始化一个委托对象,前提
            // 就是方法的签名与委托类型声明时的签名一样即可
            
            // 1、使用命名方法方式初始化一个委托对象
            CalcCallback add = new CalcCallback(Sum);

            // 2、使用拉姆达函数方式初始化一个委托对象
            CalcCallback sub=(x,y)=>{
                return x-y;
            };

            // 3、使用匿名函数方式初始化一个委托对象
            CalcCallback mul = delegate(double x, double y)
            {
                return x * y;
            };

            Console.WriteLine(add(1,2));
            Console.WriteLine(sub(2, 1));
            Console.WriteLine(mul(2, 2));

            Console.ReadKey(true);
        }
        static double Sum(double x, double y) {
            return x + y;
        }
    }
五月惊花
2017-09-29 · 超过10用户采纳过TA的回答
知道答主
回答量:46
采纳率:0%
帮助的人:19.3万
展开全部
1.委托的本质:就是函数的句柄,可以接收被调函数的地址,从而调用被调函数(函数参数还是自己提供)
2.什么时候使用:(1)函数不方便或不能在自己的类中实现;(2)想要使用的函数不在自己类中;
3.如何利用委托调用不在自己类中的函数?
(1)定义:先定义委托,参数根据最后实现的函数的参数决定(一般不在自己类中定义);
(2)声明、使用:声明委托变量(事件(函数)句柄EventHandler),在自己类中可以将委托变量当成函数使用;
(3)注册、实现:给句柄注册事件(函数),最后实现函数
4.关键点在于:在哪里声明的委托变量(句柄),换句话说,委托变量(句柄)属于谁?谁委托属于谁;
5.记住一句话:委托变量需要在自己类中声明和当成函数使用,在其他类中注册(当成变量(放函数地址的集合)使用)和实现
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式