美文网首页
为什么要使用委托

为什么要使用委托

作者: sttone | 来源:发表于2020-05-18 10:43 被阅读0次

同类型的方法,当方法拓展后,我们再调用它。
不使用委托,我们在调用方法的时候要通过传参数判断调用相应的方法,每次新增方法,我们也就要拓展方法类型,当方法拓展得越来越多,拓展的方法类型也就会越来越多
使用委托,我们可以在调用方法的时候直接把新增的方法名当参数进行调用即可,不需要进行方法类型的拓展

不使用委托

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Webtest01
{
    public partial class 事件委托 : System.Web.UI.Page
    {
       
        protected void Page_Load(object sender, EventArgs e)
        {
                Response.Write(SayHello("张三", 2));
        }

        //不使用委托
        public string SayHello(string uname,int type)
        {
            string retval = "";
            switch (type)
            {
                case 1: 
                    retval= ChinaSayHello(uname);
                    break;
                case 2: 
                    retval= EnglishSayHello(uname);
                    break;
                case 3: 
                    retval=JapaneseHello(uname);
                    break;
            }
            return retval;
        }

        public string ChinaSayHello(string uname)
        {
            return uname+":你好!";
        }
        public string EnglishSayHello(string uname)
        {
            return uname+":Hello!";
        }
        public string JapaneseHello(string uname)
        {
            return uname+":寇尼酒哇!" ;
        }
    }
}

使用委托

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Webtest01
{
    public partial class 事件委托 : System.Web.UI.Page
    {
        public delegate string SayHelloDelegate(string uname);
        protected void Page_Load(object sender, EventArgs e)
        {
            Response.Write(SayHello("张三", JapaneseHello));
        }

        //使用委托
        public string SayHello(string uname, SayHelloDelegate d)
        {
            return d(uname);
        }

        public string ChinaSayHello(string uname)
        {
            return uname+":你好!";
        }
        public string EnglishSayHello(string uname)
        {
            return uname+":Hello!";
        }
        public string JapaneseHello(string uname)
        {
            return uname+":寇尼酒哇!" ;
        }

    }
}

相关文章

  • 什么是委托

    委托的好处是什么,为什么使用委托

  • 使用原生 JS 实现事件委托

    很多情况下都可能使用到事件委托,那么对于一个使用者来说,为什么要使用事件委托?又是否正确的使用了事件委托?这里我想...

  • 总结.Net基础知识——献给即将入坑的同行们(二期)

    事件是不是一种委托? 委托是一种安全的函数指针,事件是一种消息机制 委托与事件是什么关系?为什么要使用委托 委托提...

  • 为什么要使用委托

    同类型的方法,当方法拓展后,我们再调用它。不使用委托,我们在调用方法的时候要通过传参数判断调用相应的方法,每次新增...

  • 什么时候用事件委托

    事件委托是前端程序猿经常使用的方法,为什么他倍受推崇,首先解释一下什么是事件委托,事件委托就是通过事件冒泡的原理,...

  • jQuery事件委托

    什么是事件委托? 请别人帮忙做事情,然后将做完的结果反馈给我们 为什么使用事件委托 使用场景:即使一开始对所有li...

  • 政府为什么要委托招商?

    随着企业多元需求增加、产业迭代增速、平台运营升级等,日益加剧的竞争环境以及一系列新问题,为新经济招商工作带来新的挑...

  • 第8章:委托、Lambda表达式和事件

    #1. 委托1.1 声明委托1.2 使用委托1.3 简单委托示例1.4 Action和Func委托1....

  • C#中如何定义和使用一个自定义事件(2)

    在上一个示例中,使用.NET 自定义的委托定义定义事件,不使用自定义委托。 (1) 事件发布者 使用系统的委托Ev...

  • kotlin—委托属性及其原理

    不仅类可以使用委托,属性也可以使用委托,本章节我们介绍委托属性及其实现原理 1、语法 语法如下:var/val p...

网友评论

      本文标题:为什么要使用委托

      本文链接:https://www.haomeiwen.com/subject/afayohtx.html