首页 > 编程语言 >C#委托的2中调用方式

C#委托的2中调用方式

时间:2024-01-15 16:46:26浏览次数:21  
标签:调用 委托 C# System int using deleInvoker

第一种:直接调用,通过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#,System,int,using,deleInvoker
From: https://www.cnblogs.com/StephenYoung/p/17965692

相关文章

  • 【eBPF-04】进阶:BCC 框架中 BPF 映射的应用 v2.0——尾调用
    这两天有空,继续更新一篇有关eBPFBCC框架尾调用的内容。eBPF技术很新,能够参考的中文资料很少,而对于BCC框架而言,优秀的中文介绍和教程更是凤毛麟角。我尝试去网上检索有关尾调用的中文资料,BCC框架的几乎没有。即使找到了,这些资料也难以给出可供参考和正确运行的例子。BCC......
  • Acunetix v24.1 (Linux, Windows) - 漏洞扫描 (Web 应用程序安全测试)
    Acunetixv24.1(Linux,Windows)-漏洞扫描(Web应用程序安全测试)Acunetix|WebApplicationSecurityScanner请访问原文链接:https://sysin.org/blog/acunetix/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org重要提示AcunetixPremium现在使用日历化版本命......
  • 华为桌面系统迎来重要突破!PC版鸿蒙今年登场
    1月15日消息,据华为官方消息,HarmonyOSNEXT开发者预览版内测招募正式开始,首批招募机型包括华为Mate60、Mate60Pro、MateX5。据了解,HarmonyOSNEXT也就是所谓的“纯血鸿蒙”,系统底座全线自研,仅支持鸿蒙内核和鸿蒙系统的应用,彻底摒弃与安卓的兼容性。博主数码闲聊站表示,今年华......
  • SpringBoot中整合ElasticSearch实现增删改查等操作
    场景SpringBoot中整合ElasticSearch快速入门以及踩坑记录:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/135599698在上面进行集成的基础上,实现对ES数据的增删改查等操作。注:博客:https://blog.csdn.net/badao_liumang_qizhi实现1、ElastciSearch的对象映射h......
  • hey_left 2 Codeforces Round 918 (Div. 4) 续
    题目链接F.常规的树状数组求逆序对需要注意的是,因为是下标与值的映射,所以数值不能为负数,也不能太大然后传参数的时候,参数是最大数值切记切记#include<bits/stdc++.h>usingnamespacestd;constintN=2e5+10;template<typenameT>structTreeArray{vector<T>t......
  • vue cli使用介绍
    一、介绍VueCLI是一个基于Vue.js进行快速开发的完整系统。有三个组件:CLI:@vue/cli 全局安装的npm包,提供了终端里的vue命令(如:vuecreate、vueserve、vueui等命令)CLI服务:@vue/cli-service是一个开发环境依赖。构建于 webpack 和 webpack-dev-server 之上(提供如:s......
  • Apache 介绍
    Apache基金会Apache基金会(ApacheSoftwareFoundation)简称ASF。是一个负责管理Apache项目的开源基金会。例如:ApacheHTTPServer、ApacheKafka、ApacheTomcat、ApacheZooKeeper等。Apache基金会官网:https://apache.org/ApacheHTTPServerApacheHTTPServer(简称Apa......
  • C语言---Day6
    15、enum枚举---枚举是C语言中的一种基本数据类型,用于定义一组具有离散值的常量,它可以让数据更简洁,更易读;通常用于为程序中的一组相关的常量取名字,以便于程序的可读性和维护性---声明枚举类型enumDay{MON=1,TUE,WED,THU,FRI,SAT,SUN};---枚举变量的定义:先......
  • C# String 类在开发中常用到的方法汇总【详细版】
    前言:在开发过程中我们经常用到的string类自带方法就那些个,但是有时突然不记得,又得翻看文档,比较麻烦,自己直接总结下来,方便查看1、String.Contains返回一个值,该值指示指定的字符是否出现在此字符串中。strings1="Thequickbrownfoxjumpsoverthelazydog";strings2=......
  • abc101d<打表,数学>
    题目D-SnukeNumbers思路打表找规律:voidbf(intn){vector<int>ans;doubleminn=double(n)/get(n);for(inti=n-1;i>=1;i--){doublet=double(i)/get(i);if(t<=minn+1e-9){m......