广告
返回顶部
首页 > 资讯 > 后端开发 > ASP.NET >C#委托方法Func()中GetInvocationList()方法的用法介绍
  • 932
分享到

C#委托方法Func()中GetInvocationList()方法的用法介绍

2024-04-02 19:04:59 932人浏览 薄情痞子
摘要

在日常使用委托时,有以下常用方法 方法名称说明 Clone  创建委托的浅表副本。 GetInvocationList  按照调用顺序返回此多

在日常使用委托时,有以下常用方法

方法名称说明
 Clone  创建委托的浅表副本。
 GetInvocationList  按照调用顺序返回此多路广播委托的调用列表。
 GetMethodImpl  返回由当前的 MulticastDelegate 表示的静态方法。
 GetObjectData  用序列化该实例所需的所有数据填充 SerializationInfo 对象。
 MemberwiseClone  创建当前 Object 的浅表副本。
 RemoveImpl  调用列表中移除与指定委托相等的元素

GetInvocationList() 的用途

当委托有多个返回值时

当你编写一个 delegate委托 或 Func<>泛型委托 ,并为实例绑定多个方法时,每个方法都有一个返回值。可能会遇到这种情况:

class Program
    {
        public static string a(string str)
        {
            Console.WriteLine("方法a");
            return str+"方法a";
        }
        public static string b(string str)
        {
            Console.WriteLine("方法b");
            return str + "方法b";
        }
        public static string c(string str)
        {
            Console.WriteLine("方法c");
            return str + "方法c";
        }
        static void Main(string[] args)
        {
            Func<string, string> func=a;
            func += b;
            func += c;
            Console.WriteLine(func("测试"));
            Console.ReadKey();
        }

    }

调用委托后,只能获取到最后一个调用方法的返回值。

使用 GetInvocationList()

GetInvocationList() 能够返回 这个委托的方法链表

通过使用循环,把每个方法顺序调用一次,每次循环中都会产生当前调用方法的返回值。

class Program
{
    public static string a(string str)
    {
        Console.WriteLine("方法a");
        return str+"方法a";
    }
    public static string b(string str)
    {
        Console.WriteLine("方法b");
        return str + "方法b";
    }
    public static string c(string str)
    {
        Console.WriteLine("方法c");
        return str + "方法c";
    }
    static void Main(string[] args)
    {
        Func<string, string> func=a;
        func += b;
        func += c;
        var funclist = func.GetInvocationList();
        foreach (Func<string, string> f in funclist)
        {
            Console.WriteLine(f("测试"));
        }
        Console.ReadKey();
    }

相当于把委托里顺序调用的方法分离成一个列表,通过循环调用,循环获取。

以上所述是小编给大家介绍的C#委托方法Func()中GetInvocationList()方法的用法,希望对大家有所帮助。在此也非常感谢大家对编程网网站的支持!

--结束END--

本文标题: C#委托方法Func()中GetInvocationList()方法的用法介绍

本文链接: https://www.lsjlt.com/news/162457.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#委托方法Func()中GetInvocationList()方法的用法介绍
    在日常使用委托时,有以下常用方法 方法名称说明 Clone  创建委托的浅表副本。 GetInvocationList  按照调用顺序返回此多...
    99+
    2022-11-12
  • C#中匿名方法与委托的关系介绍
    当对2个数实现加减乘除,其中的一个解决方案是通过委托来实现。如下: class Program { private delegate int Cacu...
    99+
    2022-11-13
  • C#中委托的基础介绍与实现方法
    这篇文章主要讲解了“C#中委托的基础介绍与实现方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#中委托的基础介绍与实现方法”吧!目录前言关于委托委托的实现一、基本实现方式二、使用委托时的...
    99+
    2023-06-20
  • C#委托中如何将方法作为方法的参数
    这篇文章将为大家详细讲解有关C#委托中如何将方法作为方法的参数,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。我们先不管这个标题如何的绕口,也不管C#委托究竟是个什么东西,来看下面这两个最简单的方法,它们不...
    99+
    2023-06-18
  • C#方法中的反射方式和委托方式怎么用
    这篇文章主要介绍C#方法中的反射方式和委托方式怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在开发过程中对静态方法的调用是通过类型名后面加个点而后是调用方法的名称,对类型实例方法的调用是通过new一个对象,而后...
    99+
    2023-06-17
  • C#中委托的概念与使用方法是什么
    本篇内容主要讲解“C#中委托的概念与使用方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#中委托的概念与使用方法是什么”吧!委托的概念委托这个名字取的神乎其神的,但实质是函数式编程,把...
    99+
    2023-07-05
  • C#调用WebService的方法介绍
    一、前言 在日常工作中,如果涉及到与第三方进行接口对接,有的会使用WebService的方式,这篇文章主要讲解在.NET Framework中如何调用WebService。首先我们创...
    99+
    2022-11-13
  • C#中委托的基础入门与实现方法
    目录前言关于委托委托的实现一、基本实现方式二、使用委托时的一些特殊方式1、委托实例对象的创建多元化:2、事件绑定的多种方式三、委托的几种特殊实现方式1,使用Action方法2,使用F...
    99+
    2022-11-12
  • C#中的Task.WaitAll和Task.WaitAny方法介绍
    一、简介 Task.WaitAll:等待所有提供的 Task 对象完成执行过程。 Task.WaitAny:等待提供的任一 Task 对象完成执行过程。 二、代码案例 Task.Wa...
    99+
    2022-11-13
  • C#中的Task.WhenAll和Task.WhenAny方法介绍
    一、简介 Task.WhenAll()、Task.WhenAny()这两个与Task.WaitALL()、Task.WaitAny()是有区别的,When是异步的,Wait是同步的。...
    99+
    2022-11-13
  • C++堆栈的使用方法介绍
    本篇内容介绍了“C++堆栈的使用方法介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在开发这个大的领域,C++堆栈是一个不容忽视的概念,但...
    99+
    2023-06-17
  • C#中Dispose和Finalize方法使用介绍
    一、前言 在C#中,由于有了垃圾回收机制的支持,对象的析构和以前的C++有了很大的不同,这就要求程序员在设计类型的时候,充分理解.NET的机制,明确怎样利用Dispose方法和Fin...
    99+
    2022-11-13
  • C++ plog日志使用方法介绍
    目录一、下载plog二、在VS中搭建plog编译环境三、使用plog日志库四、QTCreator使用plog日志库五、总结一、下载plog 下载链接:https://github.c...
    99+
    2022-11-13
  • C#操作进程的方法介绍
    进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行...
    99+
    2022-11-13
  • C#接口方法的实例介绍
    本篇内容介绍了“C#接口方法的实例介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!公有方法实现C#接口方法尽管C#在定义接口时不用指明接口...
    99+
    2023-06-18
  • javaArrayList中的remove方法介绍
    先看一段代码,看看自定义的ArrayList中的remove设计是否有问题。 public class MyArrayList { private Object[] mDat...
    99+
    2022-11-12
  • Android 中LayoutInflater.inflate()方法的介绍
    Android 中LayoutInflater.inflate()方法的介绍最近一直想弄明白LayoutInflater对象的inflate方法的用法,今天做了实例。<LinearLayout android:id="@+id...
    99+
    2023-05-30
    android layoutinflater flat
  • AndroidLeakCanary的使用方法介绍
    目录1.LeakCanary 如何自动初始化2.LeakCanary如何检测内存泄漏2.1LeakCanary初始化时做了什么2.2LeakCanary如何触发检测2.3LeakCa...
    99+
    2022-11-13
  • String.format()方法的使用介绍
    String.format() 方法中的 % 符号用作占位符,用于将值插入字符串中。它用于使用特定值(例如整数、浮点数或字符串)格式化字符串。% 符号后面跟着一个字母,指定要插入的值的类型,例如 %d 表示整数,%s 表示字符串。要插入的...
    99+
    2023-09-07
    java 开发语言 spring servlet
  • mysqldump的使用方法介绍
    这篇文章主要介绍了mysqldump的使用方法介绍,具有一定借鉴价值,需要的朋友可以参考下。下面就和我一起来看看吧。1、说明mysqldump在库被删除的情况下,无法直接从文件恢复,需要手动新建同名库,才能从文件恢复数据。2、语法shell...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作