C# delegate ,Action,Func
delegate传统的委托,无泛型概念。
namespace ConsoleApplication1
{
class Program
{
private delegate bool Mydel(int a, int b);
private static bool OneFun(int a, int b)
{
Console.WriteLine("a={0},b={1}", a, b);
return a > b;
}
static void Main(string[] args)
{
Mydel C = new Mydel(OneFun);
C(1, 2);
Console.ReadLine();
}
}
}
Action,
Action(Of T) 委托
封装一个方法,该方法只有一个参数并且不返回值。
理解:也是委托,输入参数为泛型,可以多达16个输入参数(in),返回值都必须为空。
public delegate void Action<in T1>
public delegate void Action<in T1,in T2>
...
....
public delegate void Action<in T1,in T2,in T3,in T4,in T5,in T6>
namespace ConsoleApplication1
{
class Program
{
private delegate bool Mydel(int a, int b);
private static void OneFun(int a, string b,int c,object d)
{
Console.WriteLine("im here");
return;
}
static void Main(string[] args)
{
Action<int, string, int, object> MyAction = OneFun;
OneFun(1,"ok",4,5);
Console.ReadLine();
}
}
}
Func
Func<T, TResult> 委托
封装一个具有一个参数并返回 TResult 参数指定的类型值的方法。
理解:也是委托,输入参数为泛型,只是一个返回值,可多达0~16个输入参数。
delegte Func<out TResult>
delegte Func<in T1,out TResult>
delegte Func<in T1,in T2,out TResult>
...
....
delegte Func<in T1,in T2,in T3,in T4,out TResult>
namespace ConsoleApplication1
{
class Program
{
private static int OneFun(int a, string b,int c,object d)
{
Console.WriteLine("im here");
return 2;
}
private static int fun()
{
Console.WriteLine("im here2");
return 1;
}
static void Main(string[] args)
{
Func<int> MyFunc = new Func<int>(fun);
MyFunc();
Func<int, string, int, object, int> MyFunc2 = new Func<int, string, int, object, int>(OneFun);
OneFun(1,"jkjkj",3,4);
Console.ReadLine();
}
}
}
转载于:https://www.cnblogs.com/zsx-blog/archive/2013/04/04/2999355.html
C# delegate ,Action,Func相关推荐
- Delegate,Action,Func,匿名方法,匿名委托,事件 (转载)
Delegate,Action,Func,匿名方法,匿名委托,事件 (转载) 一.委托Delegate 一般的方法(Method)中,我们的参数总是string,int,DateTime...这些基本 ...
- Delegate,Action,Func,匿名方法,匿名委托,事件
一.委托Delegate 一般的方法(Method)中,我们的参数总是string,int,DateTime...这些基本的数据类型(或者没有参数),比如 [c-sharp] view plainco ...
- C# 中的 Action, Func, EventHandler 和 EventHandlerTEventArgs
C# 中常用内置委托 Action, Func, EventHandler 和 EventHandler<TEventArgs> 介绍 Action Delegate 封装一个没有返回值的 ...
- unity学习-委托(delegate),事件(event),Action,Func
unity学习 委托 含义 定义 使用 事件 含义 使用 在进行项目的过程中,一直存在着对代码管理不当的问题,所以需要学习一些科学的代码思维,减少后期功能的修改与迭代引发的代码冗杂和内存爆炸 可以看b ...
- 如何使用 C# 中的 Action, Func,Predicate
译文链接:https://www.infoworld.com/article/3057152/how-to-work-with-action-func-and-predicate-delegates- ...
- lambda表达式不使用委托(delegate) 用FUNC
lLambda不使用delegate关键字,而使用 Lambda运算符 => goes to l 1.Func<int,string> getInput = (int age ...
- c#中的委托、事件、Func、Predicate、Observer设计模式以及其他
原文地址:[学习笔记]c#中的委托.事件.Func.Predicate.Observer设计模式以及其他 参考资料: 1. 简单谈谈事件与委托 2. C#中的委托和事件(上) 3. C#中的委托和事件 ...
- Silverlight与WPF中BeginInvoke的差异
Silverlight/WPF中,如果要在多线程中对界面控件值做修改,用Dispatcher对象的BeginInvoke方法无疑是最方便的办法 ,见:温故而知新:WinForm/Silverlight ...
- delegate,event, lambda,Func,Action以及Predicate
delegate 委托 可以理解为c++ 语言中的函数指针,标示了方法调用的回调函数的规范.强类型,便于编译时检查是它的最大优点,从此可以和void * 说再见了. event 事件 用以delega ...
- [C#基础]Func和Action学习
目录 委托 Action Func 总结 委托 委托的那些事 关于委托的基本定义,在很久之前的这篇文章中,有个简单的介绍.稍微回顾一下. 委托是c#中类型安全的,可以订阅一个或多个具有相同签名方法的函 ...
最新文章
- 古剑奇谭网络版服务器位置,《古剑奇谭网络版》服务器数据互通调研公告
- 字符串暴力匹配算法+思路分析
- 使用SQL Server 2005作业设置定时任务
- 雅思阅读真经总纲_你们要的刘洪波《雅思阅读真经总纲》高清PDF扫描版来了!!...
- MongoDBTool - 测试版【GUI美化完毕】 源代码发布 --MongoDB爱好者,Winform爱好者 请进...
- ERROR 1290 (HY000): The MySQL server is running withnbs
- 全国30m精度二级分类土地利用数据
- c语言程序从源代码到二进制机器码,C语言源代码转变为可执行程序的过程
- 蜂鸣器的专业分类是这样的
- 窗口风格 :ModifyStyle函数的用法:
- go操作excel单元格合并
- day02-2学习过程笔记
- 排序算法的代码--选择排序综合训练题
- 笔记本电脑如何蹭WiFi
- c语言程序设计知到网课答案,C语言程序设计(山东联盟)2020知到网课答案
- 应届生如何做好一份简历?
- 接口调用成功,功能实现但是返回404报错
- vs2017python配置opencv_[opencv +VS2017] opencv、vs2017安装配置,环境搭建
- Capacitor Plugin创建
- IMX323 I2C驱动
热门文章
- DataTable,List和Json的转换
- python求一个数的因子_python语言求因数方法的实现源码
- python赋值运算符_解释一下python中的赋值运算符
- oracle 除重更新,oracle数据库11.2.0.3升级到11.2.0.4
- java父类的私有方法可以被继承吗_简单通俗的解释java中的继承
- soc设计方法与实现_冷轧钢板局部激光热处理实现汽车轻量化设计新方法
- mysql sql优化与调优机制详解_MySQL性能调优——锁定机制与锁优化分析详解
- mysql创建jdbc数据库_创建本地数据库mySQL并连接JDBC
- Cesium:实现动态画点、线并测距
- java服务端验证框架_SpringBoot服务端数据校验过程详解