C#委托的2种调用方式
第一种:直接调用,通过invoke方法;
第二种:这是第二种将委托作为方法的参数的间接调用;
下面举个栗子演示:
using System;
using System.Collections.Generic;
namespace TestDelegate
{
delegate int DeleInvoker(int[] vs);
class Program
{
static void Main(string[] args){
DeleInvoker deleInvoker = null;
deleInvoker += Methods.SumAndDisplay;
int[] aa=new int[20];
for (int i = 0;i<aa.Length; i++){
aa[i] = i + 1;
}
Console.WriteLine("这是第一种绑定了委托后,直接调用");
//result= deleInvoker(aa);//直接调用委托
int a =(int)deleInvoker?.Invoke(aa);//判断委托是否为空,不为空则调用,《推荐》
testDelegateParm testDelegateParm = new testDelegateParm( );
Console.WriteLine("\r\n\r\n这是第二种将委托作为方法的参数的间接调用");
testDelegateParm.tDPFunc1( deleInvoker,aa);
Console.ReadKey();
}
}
internal class Methods {
public static int SumAndDisplay(int[] arrayX) {
int sum = 0;
string equation=null;
foreach (var item in arrayX){
sum += item;
if (equation==null){
equation = ($"{item}");
}
else{
equation = ($"{equation}+{item}");
}
Console.WriteLine($"{equation}={sum}");
}
return sum;
}
}
internal class testDelegateParm {
public static void tDPFunc1( DeleInvoker deleInvoker,int[] a ) {
int result=(int)deleInvoker?.Invoke(a);
}
}
}
运行效果:

C#委托的2种调用方式的更多相关文章
- 【转】SVG与HTML、JavaScript的三种调用方式
原文:https://www.cnblogs.com/guohu/p/5085045.html SVG与HTML.JavaScript的三种调用方式 一.在HTMl中访问SVG的DOM 1 2 3 4 ...
- 【转载】Redis的Java客户端Jedis的八种调用方式(事务、管道、分布式…)介绍
转载地址:http://blog.csdn.net/truong/article/details/46711045 关键字:Redis的Java客户端Jedis的八种调用方式(事务.管道.分布式…)介 ...
- 同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式
1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式: 同步/异步主要针对C端: 同步: ...
- Javascript中函数的四种调用方式
一.Javascript中函数的几个基本知识点: 1.函数的名字只是一个指向函数的指针,所以即使在不同的执行环境,即不同对象调用这个函数,这个函数指向的仍然是同一个函数. 2.函数中有两个特殊的内部属 ...
- magento 列表页显示产品属性值的几种调用方式
之前有人提到要在列表显示一些特定的属性,除了自带的名字,价格等.因为列表页和产品页都有一个同名的产品对象:$_product,而在产品页,$_product是直接可以用$_product->ge ...
- JS高级. 06 缓存、分析解决递归斐波那契数列、jQuery缓存、沙箱、函数的四种调用方式、call和apply修改函数调用方法
缓存 cache 作用就是将一些常用的数据存储起来 提升性能 cdn //-----------------分析解决递归斐波那契数列<script> //定义一个缓存数组,存储已经计算出来 ...
- 浅谈js函数三种定义方式 & 四种调用方式 & 调用顺序
在Javascript定义一个函数一般有如下三种方式: 函数关键字(function)语句: function fnMethodName(x){alert(x);} 函数字面量(Function Li ...
- Vue组件的三种调用方式
最近在写fj-service-system的时候,遇到了一些问题.那就是我有些组件,比如Dialog.Message这样的组件,是引入三方组件库,比如element-ui这样的,还是自己实现一个?虽然 ...
- Redis的Java客户端Jedis的八种调用方式(事务、管道、分布式)介绍
jedis是一个著名的key-value存储系统,而作为其官方推荐的java版客户端jedis也非常强大和稳定,支持事务.管道及有jedis自身实现的分布式. 在这里对jedis关于事务.管道和分布式 ...
- Java客户端Jedis的八种调用方式
redis是一个著名的key-value存储系统,而作为其官方推荐的java版客户端jedis也非常强大和稳定,支持事务.管道及有jedis自身实现的分布式. 在这里对jedis关于事务.管道和分 ...
随机推荐
- 如何使用Splashtop在家里进行有效的新人入职培训
编辑搜图 请点击输入图片描述 今天的新闻有点不简单,不得了. 简而言之,利用Splashtop可以在家里进行有效的新人入职培训.最棒的地方就在于--两个用户可以远程访问同一台计算机,并且可以看到彼此的 ...
- Java面试题:如果你这样做,你会后悔的,两次启动同一个线程~~~
当一个线程被启动后,如果再次调start()方法,将会抛出IllegalThreadStateException异常. 这是因为Java线程的生命周期只有一次.调用start()方法会导致系统在新线程 ...
- Intel HDSLB 高性能四层负载均衡器 — 快速入门和应用场景
目录 目录 目录 前言与背景 传统 LB 技术的局限性 HDSLB 的特点和优势 HDSLB 的性能参数 基准性能数据 对标竞品 HDSLB 的应用场景 HDSLB 的发展前景 参考文档 前言与背景 ...
- 5GC 关键技术之 CUPS(控制与用户面分离)
目录 文章目录 目录 前文列表 CUPS(控制与用户面分离) 前文列表 <简述移动通信网络的演进之路> <5G 第五代移动通信网络> <5GC 关键技术之 SBA(基于服 ...
- next-元数据创建、更新 SEO 优化
在创建Next.js项目时,根页面会自动生成一个metadata对象,其中包含标题和描述等关键信息.每当页面被访问时,这个metadata对象会被读取并应用到HTML的默认配置中,确保页面的基本信息得 ...
- hutool QrCodeUtil解析二维码出现NotFoundException
解析部分二维码时出现com.google.zxing.NotFoundException:null,解析失败的二维码手机扫是能正常打开的,后面发现这个问题是因为原二维码图片太大了,将图片缩小后正常解析 ...
- Django自定义模板标签与过滤器
title: Django自定义模板标签与过滤器 date: 2024/5/17 18:00:02 updated: 2024/5/17 18:00:02 categories: 后端开发 tags: ...
- 分享一个Byte KB MB GB 单位转换方法 从《C#本质论第三版》
static public string FormatBytes(long bytes) { string[] magnitudes = new string[] { "GB", ...
- Windows Server 2022 NTP服务器
一.配置NTP服务器 配置NTP服务器,为客户端提供时间同步服务. 如果计算机是Active Directory域控制器,则NTP服务器功能已自动启动. 因此,下面的示例是计算机在工作组环境中启用NT ...
- RCTF 2024 WEB wp
RCTF 2024 WEB wp 前言 赛后复现,proxy发现自己真是个呆b... what_is_love 首先拿key1,sql语句处有注入,可以盲注拿key1的值 import request ...