Action和Func是微软已经定义好的的两种委托类型,区别是Action是没有返回值的,而Func是需要返回值的。

 1             //Action内置委托的实例化及调用
2 //不带参数
3 Action myAction1 = () => { Console.WriteLine("这是一个Action委托的调用"); };
4 myAction1();
5 //带参数
6 Action<string> myAction2 = (str) => {
7 Console.WriteLine("这是一个带参数的Action委托调用,参数:{0}", str);
8 };
9 myAction2("HelloWorld!");
10 //多参数
11 Action<string, string> myAction3 = (str1, str2) => {
12 Console.WriteLine("这是一个带参数的Action委托调用,参数1:{0},参数2:{1}", str1, str2);
13 };
14 myAction3("1", "2");
15
16
17 //Func内置委托的实例化及调用
18 //只有Func<T>类型,多参数Func<T,T,T>,最后一个T为返回类型
19 Func<string> myFunc1 = () => "只有一个参数,就是返回类型";
20 Console.WriteLine(myFunc1());
21
22 Func<int, int, int> myFunc2 = (a, b) => { return a + b; };
23 Console.WriteLine("多参数的返回类型情况,返回值:" + myFunc2(100, 400).ToString());

C# 委托Action和Func的更多相关文章

  1. 关于线程间操作无效: 从不是创建控件“xx”的线程访问它,错误解决方法(自定义委托和系统委托Action或Func解决)

    这是一个线程不安全的问题.跨线程操作问题. 比如我们需要在线程中改变textbox的文本,textbox的name是txtShowMsg 第一种方法(不推荐使用) 在窗体构造函数中写Control.C ...

  2. C#委托(Action、Func、predicate)

    Predicate 泛型委托:表示定义一组条件并确定指定对象是否符合这些条件的方法.此委托由 Array 和 List 类的几种方法使用,用于在集合中搜索元素. public delegate boo ...

  3. 系统内置委托Action和func

    Action委托, action是系统内置的委托,它可指向无返回值,没有参数的方法. using System; using System.Collections.Generic; using Sys ...

  4. C#中匿名函数、委托delegate和Action、Func、Expression、还有Lambda的关系和区别

    以前一直迷迷糊糊的,现在总算搞明白. Lambda表达式 Lamda表达式基本写法是()=>{ };Lambda和方法一样都可以传入参数和拥有返回值.(int x)=>{return x; ...

  5. Aap.Net中的Action和Func委托

    前言 最近在阅读某开源框架源码的时候,发现作者在其中运用了很多Action委托和Func委托,虽然我之前在项目中也有一些对委托的实操,但还是免不了长时间的不用,当初消化的一些委托基础都遗忘了...索性 ...

  6. C#扫盲篇(三):Action和Func委托--实话实说

    一.基础定义 老王想找老张的老婆出去耍,但是一看,老张还在厨房煮饭.于是老王就对老张隔壁的淑芬说:"等下老张吃完饭出去喝茶,你就把前门晒的苞谷收了,老张从左门出,你就收右边的苞谷,我就知道从 ...

  7. C#委托的介绍(delegate、Action、Func、predicate)

    委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递.事件是一种特殊的委托. 1.委托的声明 (1). delegate delegate我们常用到的一种声明   Deleg ...

  8. C#委托的介绍(delegate、Action、Func、predicate) --转载

    来源:http://www.cnblogs.com/akwwl/p/3232679.html 委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递.事件是一种特殊的委托. 1 ...

  9. C#系统委托之Action And Func

    Action Action<T> Func Func<T> Action:封装一个方法,该方法不具有参数并且不返回值 public delegate void Action() ...

  10. Action<>和Func<> 委托【代理】

    C#中的Action<>和Func<> 其实他们两个都是委托[代理]的简写形式. 一.[action<>]指定那些只有输入参数,没有返回值的委托 Delegate的 ...

随机推荐

  1. k8s单节点改为高可用和更新证书

    master单节点添加master节点 apiServer添加域名更新证书 更新kubenertes证书有效期 环境 kubernetes v1.22.12 使用kubeadm安装的集群 #添加节点 ...

  2. LNMP Wordpress phpMyAdmin的部署记录

    背景 CentOS 8.2服务器,使用的虚拟服务器.只开放22与80端口.设置默认页面是wordpress的入口,phpmyadmin使用虚拟目录的形式进行访问. 安装 总体思路按照此文章进行.我进行 ...

  3. Debian 12 (bookworm) 安装方法及其国内软件源

    摘要: Debian 12 (bookworm) 已经于2023年6月份正式发布.以下为原来信息: Debian 12 (bookworm) 预计于2023年中期发布,但是目前(2023年4月)已经处 ...

  4. Qt编写视频监控系统78-视频推流到流媒体服务器

    一.前言 视频推流作为独立的模块,目前并没有集成到视频监控系统中,目前是可以搭配监控系统一起使用,一般是将添加好的摄像头通道视频流地址打开后,读取视频流重新推到流媒体服务器,然后第三方可以从流媒体服务 ...

  5. Qt编写视频监控系统73-不同视频流不同类型的判断和解析(http/m3u8/rtsp/rtmp等)

    一.前言 这套视频监控系统大概从2018年起步整体框架,一步步积累到现在,中间经历了无数次的各种视频文件.视频流.视频设备的播放测试,比如光视频文件就有mp4/wmv/rmvb/mkv/avi等格式, ...

  6. Vue整合Cesium的博文

    参考链接: 1.Vue 集成 Cesium 2.vue/cli3引入cesium 3.Vue2+Cesium.js展示地图 4.vue-cli3 引入 cesium 5.Vue Cli 4 引入 Ce ...

  7. [转][vue-router] Duplicate named routes definition动态路由addRoutes的踩坑

    问题描述: 第一次进入页面,左侧静态路由和动态路由列表均能正常显示,但点击左侧其他路由后浏览器报警告[vue-router] Duplicate named routes definition-,并且 ...

  8. 正在测试和完善的CH552(CH549)USB下载之单按键带入电路实验

    一.设计理由 CH552或CH549进入USB下载,通常需要两个按键,一个控制电源的通断,一个通过串联电阻(一头接VCC或V33)冷启动时抬高UDP电平.时序上是这样的:断电--按下接UDP的轻触开关 ...

  9. python SQLAlchemy ORM——从零开始学习 02简单的增删查改

    02 简单的增删查改 前情提要:承接了01中的engine以及User类 2-1 了解会话机制 个人理解 在SQLAlchemy 增删查改中是依赖会话(Session)这个机制进行操作的,我个人的理解 ...

  10. MyBatis的深入原理-架构设计以及实例分析

    MyBatis是目前非常流行的ORM框架,它的功能很强大,然而其实现却比较简单.优雅.本文主要讲述MyBatis的架构设计思路,并且讨论MyBatis的几个核心部件,然后结合一个select查询实例, ...