C# 委托的”四步走“

看了一本《深入了解C#》感觉很不错,对于委托的讲解,给大家摘录了下来!

1.什么是委托

我的拙见:委托就是将方法作为参数,进行传递的

书中的记载:将某种行为“包含”在一个对象中,这个对象可以像其他任何对象那样使用,在该对象中可以齿形对象的行为。可以选择将委托类型看做只定义一个方法的接口,将委托示例看做实现了那个接口的一个对象(感觉这些说发有点空洞)。

2.简单委托的构成

为了让委托做某事,必须满足4个条件(我称之为”四步走“)

(1)声明委托类型(2)必须有一个方法包含要执行的的代码(3)必须创建一个委托实例(4)必须调用(invoke)委托实例

下面通过一个例子解释

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace weituo
{
    class Program
    {
        static void Main(string[] args)
        {
            //(3)第二步:必须创建一个委托实例
            ProcessDelegate process;
            Console.WriteLine("请输入用逗号分隔的两个数字:");
            string input = Console.ReadLine();
            int commaPos = input.IndexOf(‘,‘);
            double param1 = Convert.ToDouble(input.Substring(0, commaPos));
            double param2 = Convert.ToDouble(input.Substring(commaPos + 1,input.Length - commaPos -1));
 
            Console.WriteLine("输入M乘法D除法");
            input =Console.ReadLine();
 
            // 初始化委托变量
            if(input =="M")
                   //(4)必须调用(invoke)委托实例
                process = new ProcessDelegate(Multiply);
                //注释:此处也可以写process = Multiply
            else
                     //(4)必须调用(invoke)委托实例
                process = new ProcessDelegate(Divide);
 
            // 使用委托调用函数
            double result = process(param1,param2);
            Console.WriteLine("结果:{0}",result);
            Console.ReadKey();
 
        }
 
        //(1)第一步:声明委托类型
        delegate double ProcessDelegate(double param1,double param2);
       //(2)第二步:必须有一个方法包含要执行的的代码(下面是两个方法)
        static double Multiply(double param1, double param2)
        {
            return param1 * param2;
        }
 
        static double Divide(double param1, double param2)
        {
            return param1 / param2;
        }
 
    }
}

  实例二:

时间: 2024-10-11 08:27:02

C# 委托的”四步走“的相关文章

CentOS下nagios报警飞信部署四步走

CentOS下nagios报警飞信部署四步走 今天 帮群里一兄弟配了下nagios上的飞信,这个东西 我个人感觉还是很实用的,不过好久没配了,今天配置了一遍,顺便 就把过程记录下来了,供大家学习!!! 一.安装飞信 cd /root/toolswget http://ebook.elain.org/tools/fetion20101205.tar.gz 安装步骤略,软件包中有添加要接收报警短信的手机号为飞信好友 /usr/local/fetion/fetion --mobile=137xxxxx

关于pytho面向过程开发人员三步转oo的补充,再加一步,四步走战略

1.之前写的这个很久了 里面提到的是三步走: 模块和类的转换规则是: 1.模块级降为类 2.全局变量改成实例属性,全局的不会被改变的变量类似于那种const的,可以写成类属性(减少点内存存储可以). 3.然后把函数改成方法.方法是类里面的,函数是模块里面的. 因为里面举得一个例子是一个人,但人的属性写的是模块级全局变量,如果是这种写法,三步走就可以oo了. 2.但现在的情况是很多人不喜欢写全局变量(不写全局是为了尽可能模拟多实例,不可能用全局变量,因为全局变量只有一份:而且运行结果是从入口函数传

Tomcat学习四步走:内核、集群、参数及性能

主题简介: 内核实现原理 分布式集群 生产部署关键参数 性能监控和分析 一.内核实现原理 HTTP Web服务器与浏览器之间以HTTP协议通信,浏览器要访问服务器即向服务器发送HTTP请求报文. 如图,此处用get方法访问了localhost的8080端口的Web.Index.JSP,服务器返回200状态码并将一些HTTP报文返回到客户端. HTTP报文 从图中可以看到,HTTP报文中的请求报文和响应报文都由三部分组成.请求报文由请求行.请求头和请求体三部分组成,其中请求行主要包括method.

2015年SDN四步走,促其更上一层楼

编者按:2014年SDN的发展取得了长足的进步,传统运营商.初创企业都在积极拥抱SDN:数家组织机构也在积极推动SDN落地.2015年要保持SDN发展冲势,甚至更进一步,我们将何去何从? 回顾2014年的网络世界,SDN(软件定义网络)发展迅猛,无论是初创企业还是传统厂商,都在积极拥抱SDN:与此同时,开放网络基金会(ONF,Open Networking Foundation).Linux基金会(OpenDaylight)和ONLab(open networking lab)等组织和机构,也都

【巨杉数据库SequoiaDB】巨杉Tech | 四步走,快速诊断数据库集群状态

1.背景 SequoiaDB 巨杉数据库是一款金融级分布式数据库,包括了分布式 NewSQL.分布式文件系统与对象存储.与高性能 NoSQL 三种存储模式,分别对应分布式在线交易.非结构化数据和内容管理.以及海量数据管理和高性能访问场景. 集群一般会使用三副本方式以确保数据安全.假若集群发生因硬件故障等原因导致的节点故障或集群异常,数据库管理员应进行系统的分析和诊断,以确保集群正常工作,不会影响用户的正常使用.本文将与大家分享一下基本的 SequoiaDB 数据库诊断方法. 数据库集群诊断 1)

如何学好编程(三)----四步成为编程精英

如何才能在编程领域迅速牛起来呢?要想成为编程达人,可以分为四步走. 第一步:海量观摩与学习,快速找到章法. 编程需要很多的知识,不同的语言有不同的语法,有不同的应用环境.学习编程的第一步,就是我们各种编程的基础知识,包括数据结构,基础语法,网络知识概念等.然后通过别人写的例子进行学习,快速理解各种语法规则等.简单点,就是多看书,多学习. 第二步:找机会大量练手,以数量取胜 编程是需要大量实践的,理论再好,不会动手也不可以.当你在第一步的基础上时,你通过海量的观摩和学习,现在就是要讲你学习的给输出

只需四步,帮助企业做好MaxCompute成本优化

摘要: 阿里云在和很多企业交流的过程中发现他们在使用MaxCompute的时候往往会遇到一些成本相关的问题,而在与客户不但交流沟通的过程中,阿里云在成本优化方面也积累了大量的经验,因此也希望能够将这些经验沉淀下来分享给更多的企业和开发者,本文就将与大家分享帮助企业做好MaxCompute成本优化的"四步走"战略. 摘要:阿里云在和很多企业交流的过程中发现他们在使用MaxCompute的时候往往会遇到一些成本相关的问题,而在与客户不但交流沟通的过程中,阿里云在成本优化方面也积累了大量的经

四步教你SpringBoot+Mybatis-plus分页插件(简单实现)

MyBatis-Plus 分页插件---四步走 第一步:编写分页插件配置类 //Spring boot方式 @EnableTransactionManagement @Configuration @MapperScan("com.itheima.mapper") public class MyBatisPlusConfig { /** * 分页插件 * @return */ @Bean public PaginationInterceptor paginationInterceptor

Hadoop核心组件:四步通晓HDFS

Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件上的分布式文件系统,它提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集的应用程序,那么在实际应用中我们如何来操作使用呢? 一.HDFS操作方式: 1.  命令行操作 –FsShell:$ hdfs dfs 2. 其他的计算框架-如spark 通过URI,比如: hdfs://nnhost:port/file-,调用HDFS的协议.主机.端口或者对外提供的服务媒.以及文件,在spark的程序中实现对HDFS的访问. 3.  其